Function at 0x440640
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
mov word [esp + 2], 0xfffe
push ebx
push esi
push edi
xor ebx, ebx
mov esi, dword [esp + 0x78]
push ebp
mov dword [esp + 0x18], ebx
push esi
call fcn.004b03e0
mov edi, dword [esp + 0x84]
mov dword [esp + 0x58], ebx
add esp, 4
mov ebp, eax
lea eax, [edi + 0x20]
mov dword [esp + 0x50], eax
mov eax, ebp
sub eax, dword [edi + 0x10]
cmp eax, 0x1e
jae 0x44068a
xor ax, ax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret
lea eax, [esp + 0x58]
mov ecx, dword [edi + 8]
push eax
mov dword [edi + 0x10], ebp
push ecx
push esi
call fcn.004d7420
add esp, 0xc
test eax, eax
jne 0x440cb0
mov eax, dword [esp + 0x58]
cmp dword [edi + 0xc], eax
jb 0x4406bb
xor ax, ax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret
mov eax, dword [edi + 8]
lea ecx, [esp + 0x18]
push eax
mov dword [edi + 0xc], ebp
push ecx
push esi
call fcn.004adbb0
add esp, 0xc
test ax, ax
jne 0x440cb0
push edi
push esi
call fcn.00441050
add esp, 8
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov ebp, 1
push eax
push ecx
push esi
call fcn.004aa460
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x4c]
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call fcn.004adc40
add esp, 0xc
test ax, ax
jne 0x440c70
mov eax, dword [esp + 0x5c]
inc eax
cmp dword [edi + 0x50], eax
jae 0x440773
cmp eax, 0x100
jg 0x44072f
mov eax, 0x100
push 0x3e
mov ecx, dword [edi + 0x48]
push eax
mov edx, dword [edi + 0x1c]
push ecx
mov dword [edi + 0x50], eax
push edx
push esi
call fcn.004aa6e0
add esp, 0x14
mov dword [edi + 0x48], eax
test eax, eax
je 0x440cb0
push 0x3e
mov eax, dword [edi + 0x50]
push eax
mov ecx, dword [edi + 0x4c]
push ecx
mov edx, dword [edi + 0x1c]
push edx
push esi
call fcn.004aa6e0
add esp, 0x14
mov dword [edi + 0x4c], eax
test eax, eax
je 0x440cb0
mov eax, dword [esp + 0x4c]
cmp byte [eax], 0
je 0x4406f9
test esi, esi
je 0x440793
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440793
mov ecx, dword [eax + 0x2c]
jmp 0x440795
xor ecx, ecx
mov eax, dword [esp + 0x4c]
push 0
lea edx, [esp + 0x40]
push eax
push edx
push ecx
push esi
call fcn.004aec90
add esp, 0x14
test word [esp + 0x48], bp
je 0x4407c5
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
jmp 0x440811
test byte [esp + 0x48], 2
je 0x4407e9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp word [eax + ecx], bp
mov eax, 0
adc eax, 0xffffffff
and eax, 2
mov dword [esp + 0x14], eax
jmp 0x440811
test esi, esi
je 0x4407fc
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4407fc
mov ecx, dword [eax + 0x2c]
jmp 0x4407fe
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x3c]
push eax
push edx
push ecx
call fcn.004ae290
add esp, 0xc
cmp dword [esp + 0x14], 0x23
je 0x4406f9
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x1c]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
push 0x3a
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x20]
push ecx
push esi
call fcn.004aed20
add esp, 0xc
test ax, ax
jne 0x4406f9
lea eax, [esp + 0x1c]
push 0
lea ecx, [esp + 0x40]
push 0x4b0110
push eax
push ecx
push esi
call fcn.004afda0
lea ecx, [esp + 0x40]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x50]
add esp, 0x14
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
push 0
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
push 0x4b0140
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
lea edx, [esp + 0x34]
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x24]
push ecx
push edx
push esi
call fcn.004afda0
mov dword [esp + 0x28], eax
add esp, 0x14
test esi, esi
je 0x4408c0
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4408c0
mov ecx, dword [eax + 0x2c]
jmp 0x4408c2
xor ecx, ecx
mov eax, dword [edi + 0x50]
mov edx, dword [edi + 0x48]
push eax
push edx
lea eax, [esp + 0x34]
lea edx, [esp + 0x44]
push eax
push edx
push ecx
push esi
call fcn.004af030
add esp, 0x18
test esi, esi
je 0x4408f1
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4408f1
mov eax, dword [eax + 0x2c]
jmp 0x4408f3
xor eax, eax
mov ecx, dword [edi + 0x48]
push ecx
push eax
call fcn.004addd0
mov dword [esp + 0x68], eax
add esp, 8
test word [esp + 0x28], bp
je 0x440926
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov al, byte [edx + ecx]
mov dword [esp + 0x14], eax
test eax, eax
je 0x44097d
inc dword [esp + 0x20]
jmp 0x44097d
test byte [esp + 0x28], 2
je 0x440955
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp word [eax + ecx], 0
je 0x44094b
add dword [esp + 0x20], 2
mov dword [esp + 0x14], 2
jmp 0x44097d
mov dword [esp + 0x14], 0
jmp 0x44097d
test esi, esi
je 0x440968
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440968
mov ecx, dword [eax + 0x2c]
jmp 0x44096a
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x1c]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
lea eax, [esp + 0x1c]
push 0
push 0x4b0110
push 0
push eax
push esi
call fcn.004afda0
lea ecx, [esp + 0x40]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x30]
add esp, 0x14
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
cmp dword [esp + 0x14], 0
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jne 0x440aaf
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x68]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
test esi, esi
je 0x440ad5
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440ad5
mov ecx, dword [eax + 0x2c]
jmp 0x440ad7
test byte [esp + 0x38], 2
je 0x440a21
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp word [eax + ecx], bp
mov eax, 0
adc eax, 0xffffffff
and eax, 2
mov dword [esp + 0x14], eax
jmp 0x440a4c
test esi, esi
je 0x440a34
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440a34
mov ecx, dword [eax + 0x2c]
jmp 0x440a36
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x2c]
push eax
push edx
push ecx
call fcn.004ae290
movsx eax, ax
add esp, 0xc
test eax, eax
je 0x4409df
lea eax, [esp + 0x2c]
push 0
push 0x4b0140
push 0
push eax
push esi
call fcn.004afda0
lea ecx, [esp + 0x7c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x40]
add esp, 0x14
cmp dword [esp + 0x14], 0
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
je 0x4409df
lea eax, [esp + 0x2c]
push 0
push 0x4b0110
push 0
push eax
push esi
call fcn.004afda0
mov dword [esp + 0x28], eax
add esp, 0x14
test word [esp + 0x38], bp
je 0x4409fd
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
cmp eax, ebp
sbb eax, eax
inc eax
jmp 0x440a4c
xor ecx, ecx
mov eax, dword [edi + 0x50]
mov edx, dword [edi + 0x4c]
push eax
push edx
lea eax, [esp + 0x70]
lea edx, [esp + 0x24]
push eax
push edx
push ecx
push esi
call fcn.004af030
add esp, 0x18
test esi, esi
je 0x440b06
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440b06
mov eax, dword [eax + 0x2c]
jmp 0x440b08
xor eax, eax
mov ecx, dword [edi + 0x4c]
push ecx
push eax
call fcn.004addd0
mov dword [esp + 0x6c], eax
add esp, 8
mov ecx, 0
test esi, esi
je 0x440b28
mov ecx, dword [esi + 0xac]
mov eax, dword [esp + 0x60]
mov edx, dword [edi + 0x48]
push eax
push str._ROOT
push edx
push ecx
call fcn.004ac3a0
add esp, 0x10
test ax, ax
push 0x3e
je 0x440c52
push 0x28
mov eax, dword [edi + 0x1c]
push eax
push esi
call fcn.004aa140
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x440cb0
push 0x3e
mov eax, dword [edi + 0x48]
push eax
mov ecx, dword [edi + 0x1c]
push ecx
push esi
call fcn.004aa900
add esp, 0x10
mov dword [ebx + 0x18], eax
test eax, eax
je 0x440cb0
push 0x3e
mov eax, dword [edi + 0x4c]
push eax
mov ecx, dword [edi + 0x1c]
push ecx
push esi
call fcn.004aa900
add esp, 0x10
mov dword [ebx + 0x20], eax
test eax, eax
je 0x440cb0
mov ax, word [esp + 0x64]
test esi, esi
mov word [ebx + 0x24], ax
je 0x440bbb
mov eax, dword [esi + 0xac]
test eax, eax
je 0x440bbb
mov eax, dword [eax + 0x2c]
jmp 0x440bbd
xor eax, eax
mov ecx, dword [ebx + 0x18]
push ecx
push eax
call fcn.004addd0
mov word [ebx + 0x1c], ax
add esp, 8
mov eax, dword [ebx + 0x18]
mov ecx, dword [edi + 0x40]
push ebx
push eax
push ecx
call fcn.004e7960
add esp, 0xc
test ax, ax
je 0x440c33
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 0x18]
push eax
push ecx
push 0xffff9849
push 3
push esi
call fcn.004bda00
add esp, 0x14
mov ecx, dword [ebx + 0x18]
mov edx, dword [edi + 0x1c]
push ecx
push edx
push esi
call fcn.004aa460
add esp, 0xc
mov ecx, dword [ebx + 0x20]
mov edx, dword [edi + 0x1c]
push ecx
push edx
push esi
call fcn.004aa460
add esp, 0xc
mov ecx, dword [edi + 0x1c]
push ebx
push ecx
push esi
xor ebx, ebx
call fcn.004aa460
add esp, 0xc
jmp 0x4406f9
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea edx, [ebx + 0xc]
mov dword [esp + 0x54], ebx
mov dword [eax], ebx
mov dword [esp + 0x50], edx
mov dword [ebx + 0x10], ecx
xor ebx, ebx
jmp 0x4406f9
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x1c]
push eax
push ecx
push esi
call fcn.004aa900
add esp, 0x10
mov dword [edi + 0x18], eax
test eax, eax
jne 0x4406f9
jmp 0x440cb0
mov eax, dword [edi + 0x40]
push eax
call fcn.004e7450
add esp, 4
test ax, ax
jne 0x440cb0
push edi
push esi
call fcn.00440cf0
add esp, 8
test ax, ax
jne 0x440cb0
push 2
mov eax, dword [edi + 8]
push eax
push esi
call fcn.004e5cb0
mov word [esp + 0x1e], 0
add esp, 0xc
cmp eax, 1
sbb al, al
inc al
mov byte [edi + 0x14], al
cmp dword [esp + 0x18], 0
je 0x440cc4
mov eax, dword [esp + 0x18]
push eax
call fcn.004add10
add esp, 4
push ebx
push edi
push esi
call fcn.00440f10
add esp, 0xc
cmp word [esp + 0x12], 0
je 0x440ce1
push edi
push esi
call fcn.00441050
add esp, 8
mov ax, word [esp + 0x12]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret