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

Disassembly:
sub esp, 0x64
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov edi, dword [esp + 0x78]
cmp dword [edi + 0x106ac], 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ebp
jne 0x390145
mov ecx, dword [edi + 0x106b4]
lea eax, [edi + 0x104b8]
push ecx
push eax
push edi
call fcn.0039ac20
add eax, 0x170
mov dword [esp + 0x40], eax
jmp 0x39014c
lea edx, [edi + 0x18]
mov dword [esp + 0x40], edx
mov ecx, dword [edi + 0x12bfc]
mov eax, dword [edi + 0x12f78]
push 1
push ecx
mov dword [esp + 0x40], eax
call fcn.00048c00
push 0x14
lea eax, [edi + 0x12f40]
push ebp
push eax
call fcn.000489a0
push 8
push ebp
lea edx, [esp + 0x54]
push edx
call fcn.000489a0
push 8
push ebp
lea eax, [esp + 0x4c]
push eax
call fcn.000489a0
mov ecx, dword [edi + 0x12bfc]
push 1
push ecx
call fcn.00048c90
mov esi, eax
cmp esi, ebp
je 0x3902e1
jmp 0x3901b0
test byte [esi + 0x774], 0x80
mov ebx, dword [esi + 0x764]
jne 0x390247
cmp dword [esp + 0x14], ebp
jne 0x390201
mov ecx, dword [esp + 0x18]
push 0x7664476e
lea edx, [ebp*4 + 0x28]
push edx
lea eax, [ebp*4]
push eax
push ecx
call fcn.00048950
test eax, eax
jne 0x3901fa
lea edx, [esp + 0x18]
push edx
call fcn.00048980
xor ebp, ebp
jmp 0x390210
mov dword [esp + 0x18], eax
add ebp, 0xa
mov eax, dword [esp + 0x14]
cmp eax, ebp
jae 0x390210
mov ecx, dword [esp + 0x18]
mov dword [ecx + eax*4], esi
mov edx, 1
add dword [esp + 0x14], edx
add dword [edi + 0x12f44], edx
xor ecx, ecx
mov eax, edx
shl eax, cl
test ebx, eax
je 0x39023a
cmp dword [esi + 0x2a0], 0
jne 0x39023a
add dword [esp + ecx*4 + 0x44], edx
mov dword [esp + ecx*4 + 0x4c], esi
add ecx, edx
cmp ecx, 2
jb 0x390221
mov dword [esp + 0x20], esi
jmp 0x39024c
mov edx, 1
mov eax, dword [esi + 0x774]
test ah, 0x40
je 0x39025b
mov dword [esp + 0x28], edx
mov ecx, dword [edi + 0x10]
test ecx, 0x80000
je 0x39028b
test byte [esi + 0x15], 0x10
je 0x39027f
test ah, 2
jne 0x39027f
test al, al
js 0x39027f
add dword [esp + 0x10], edx
add dword [edi + 0x12f48], edx
test byte [esi + 0x25], 2
je 0x39028b
add dword [edi + 0x12f4c], edx
test ecx, 0x10000
je 0x39029f
test byte [esi + 0x25], 0xc0
je 0x39029f
add dword [edi + 0x12f50], edx
test byte [esi + 0x14], 0xc
je 0x3902a9
mov dword [esp + 0x2c], edx
cmp dword [esi + 0x2a8], edx
jbe 0x3902b5
mov dword [esp + 0x3c], edx
mov ebx, 1
add dword [edi + 0x12f40], ebx
mov ecx, dword [edi + 0x12bfc]
add dword [esp + 0x30], ebx
push ebx
push ecx
call fcn.00048c90
mov esi, eax
test esi, esi
jne 0x3901b0
cmp dword [esp + 0x14], ebx
je 0x3902e9
mov dword [esp + 0x20], 0
xor ecx, ecx
xor eax, eax
mov edx, 1
cmp dword [esp + eax + 0x44], edx
je 0x3902fc
mov dword [esp + eax + 0x4c], ecx
add eax, 4
cmp eax, 8
jb 0x3902f2
test byte [edi + 0x12], 8
mov ebp, 0x80000000
je 0x39035b
test dword [edi + 0x1047c], ebp
mov dword [esp + 0x24], ecx
jne 0x390344
mov eax, dword [edi + 0x10480]
test al, 1
je 0x390330
xor edx, edx
cmp dword [esp + 0x10], ecx
setne dl
jmp 0x390344
test al, 4
je 0x3903f3
cmp dword [esp + 0x10], ecx
je 0x390342
test al, 2
jne 0x390344
xor edx, edx
push edx
push edi
mov dword [esp + 0x18], edx
call fcn.003a8820
test eax, eax
je 0x39035b
mov dword [esp + 0x10], 0
mov ecx, dword [edi + 0x12bfc]
push 1
push ecx
call fcn.00048c00
xor ebp, ebp
cmp dword [esp + 0x28], ebp
je 0x390377
push edi
call fcn.003aa0d0
cmp dword [esp + 0x2c], ebp
jne 0x39039b
cmp dword [edi + 0x12e40], ebp
je 0x39039b
push 0xbfef0005
push 0xbfef0002
push edi
call fcn.000484d0
mov dword [edi + 0x12e40], ebp
mov edx, dword [edi + 0x12bfc]
push 1
push edx
call fcn.00048c90
mov ebx, dword [esp + 0x20]
mov esi, eax
cmp esi, ebp
je 0x390847
jmp 0x3903c0
test byte [edi + 0x12], 8
je 0x3904f4
cmp dword [esp + 0x10], ebp
mov eax, dword [esi + 0x14]
jne 0x39047f
test eax, 0x104001
jne 0x3904a3
test ah, 0x20
je 0x3904a3
and ah, 0xdf
jmp 0x39049a
mov edx, dword [0x4e6bd0]
mov esi, dword [edx + 0x13040c]
lea eax, [esp + 0x24]
push eax
push esi
call fcn.0038eff0
test eax, eax
mov ebx, dword [esp + 0x24]
jne 0x39042b
push esi
call fcn.003a8850
test eax, eax
jne 0x39042b
test dword [edi + 0x1047c], ebp
jne 0x39042b
push eax
push ebx
call fcn.003a8820
test ebx, ebx
je 0x39044c
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [edi + 0xc]
jne 0x39044c
mov edx, dword [ebx + 0x10224]
cmp edx, dword [edi + 0x10224]
jne 0x39044c
mov ecx, 1
jmp 0x39044e
xor ecx, ecx
cmp dword [esp + 0x10], 0
je 0x390342
mov eax, dword [0x4e6bd0]
mov eax, dword [eax + 0x13040c]
test eax, eax
je 0x390475
cmp eax, dword [edi + 4]
je 0x390475
test ecx, ecx
je 0x390342
mov edx, 1
jmp 0x390344
test eax, 0x107001
jne 0x3904a3
cmp dword [esi + 0x2a0], ebp
je 0x390497
test byte [edi + 0x1047e], 0x40
jne 0x3904a3
or ah, 0x20
push esi
mov dword [esi + 0x14], eax
call fcn.0039b8d0
mov eax, dword [esi + 0x18]
test ah, 0x10
je 0x3904f4
test byte [edi + 0x10480], 0x48
je 0x3904e3
test ah, 0x20
jne 0x3904c5
or ah, 0x20
push esi
mov dword [esi + 0x18], eax
call fcn.0039b8d0
test byte [edi + 0x10480], 8
mov eax, dword [esi + 0x18]
je 0x3904da
test ah, ah
jns 0x3904f4
and ah, 0x7f
jmp 0x3904eb
test ah, ah
js 0x3904f4
or ah, 0x80
jmp 0x3904eb
test ah, 0x20
je 0x3904f4
and ah, 0x5f
push esi
mov dword [esi + 0x18], eax
call fcn.0039b8d0
test byte [esi + 0x18], 0x10
je 0x390530
test byte [edi + 0x10], 0x20
je 0x390530
cmp dword [edi + 0x10458], ebp
je 0x390530
mov eax, dword [edi + 0x12fb8]
cmp dword [esi + 0x768], eax
je 0x390522
push esi
mov dword [esi + 0x768], eax
call fcn.0039b8d0
push esi
lea eax, [esi + 0x6fc]
push eax
push edi
call fcn.00392b20
cmp dword [esp + 0x28], ebp
je 0x390543
test byte [esi + 0x14], 0xc
je 0x390543
or byte [esi + 0x775], 0x48
cmp dword [esp + 0x2c], ebp
je 0x390571
test byte [edi + 0x11], 1
je 0x390571
mov eax, dword [esi + 0x14]
test eax, 0x104001
jne 0x390571
test al, 0x10
je 0x390571
and al, 0xef
or al, 0xc
push esi
mov dword [esi + 0x14], eax
or byte [esi + 0x775], 0x48
call fcn.0039b8d0
mov eax, dword [esi + 0x780]
cmp eax, ebp
je 0x390592
cmp dword [eax + 8], 1
jne 0x390592
test byte [edi + 0x11], 1
je 0x390592
cmp ebx, ebp
jne 0x390592
or byte [esi + 0x775], 8
mov eax, dword [esi + 0x774]
test al, 2
je 0x390645
test al, 0x40
jne 0x39063e
test al, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x34], ebp
je 0x3905fd
push 0x6d74476e
push 0x4df0
call fcn.00048910
push 0x6d74476e
push 0x74
mov dword [esp + 0x24], eax
call fcn.00048910
mov ecx, dword [esp + 0x1c]
cmp ecx, ebp
mov dword [esp + 0x24], eax
je 0x390880
cmp eax, ebp
je 0x390880
lea edx, [esp + 0x34]
push edx
push eax
push ecx
push esi
push edi
call fcn.0039f1a0
push esi
push edi
call fcn.003a0840
test byte [esi + 0x774], 4
je 0x39063e
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push esi
push edi
call fcn.0039fd00
lea eax, [esp + 0x1c]
push eax
call fcn.00048980
lea ecx, [esp + 0x24]
push ecx
call fcn.00048980
and dword [esi + 0x774], 0xfffffffb
and dword [esi + 0x774], 0xfffffffd
test byte [esi + 0x775], 8
je 0x39080c
mov eax, dword [esi + 0x780]
cmp eax, ebp
je 0x39065f
mov dword [eax + 8], ebp
mov eax, dword [esi + 0x774]
test ah, 1
jne 0x3907e7
test al, al
js 0x3907e7
test ah, 0x10
jne 0x390685
cmp dword [esi + 0x30], 1
jne 0x3907e7
test byte [esi + 0x14], 4
jne 0x3907e7
mov eax, dword [edi + 0x10]
test ah, 0x10
jne 0x3907e7
test ah, 1
je 0x3907d3
cmp ebx, ebp
jne 0x3907d3
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x3907d8
mov ecx, dword [esi + 0x280]
mov edx, dword [esi + 0xd0]
mov eax, dword [esi + 0x284]
add edx, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0xd4]
xor ebp, ebp
add ecx, eax
cmp dword [esp + 0x14], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
jbe 0x3907d3
mov eax, dword [ebx + ebp*4]
cmp eax, esi
je 0x39079a
mov edx, dword [eax + 0x76c]
cmp edx, dword [esi + 0x76c]
je 0x39079a
mov edx, dword [eax + 0x280]
mov edi, dword [eax + 0x284]
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xd4]
add ecx, edx
add eax, edi
cmp dword [esi + 0x280], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], 0
jge 0x390786
cmp dword [esp + 0x5c], edx
jle 0x390786
cmp dword [esi + 0x284], eax
jge 0x390786
cmp dword [esp + 0x60], edi
jle 0x390786
lea ecx, [esp + 0x54]
call fcn.0039a290
test eax, eax
jne 0x390782
lea ecx, [esp + 0x64]
call fcn.0039a290
test eax, eax
jne 0x390782
mov eax, 1
jmp 0x39078a
xor eax, eax
jmp 0x39078a
mov eax, dword [esp + 0x34]
test eax, eax
mov edi, dword [esp + 0x78]
mov dword [esp + 0x34], eax
jne 0x3907ae
mov ebx, dword [esp + 0x18]
add ebp, 1
cmp ebp, dword [esp + 0x14]
jb 0x3906f4
cmp dword [esp + 0x34], 0
je 0x3907d3
mov eax, dword [esi + 0x780]
test eax, eax
je 0x3907d8
cmp dword [eax + 8], 1
jne 0x3907d8
push esi
call fcn.0039b8d0
and byte [esi + 0x775], 0xef
mov ebx, dword [esp + 0x20]
xor ebp, ebp
jmp 0x3907f5
call fcn.0038fa00
and byte [esi + 0x775], 0xef
mov ebx, dword [esp + 0x20]
xor ebp, ebp
jmp 0x3907f5
test dword [esi + 0x14], 0x144001
jne 0x3907f5
call fcn.0038fa00
test byte [esi + 0x774], 0x40
jne 0x390805
push esi
push edi
call fcn.0039ac80
and byte [esi + 0x775], 0xf7
mov eax, dword [esi + 0x14]
test al, 1
je 0x39082f
mov ecx, 1
cmp dword [edi + 0x12d5c], ecx
je 0x39082f
cmp dword [esi + 0x30], ecx
je 0x39082f
test byte [esi + 0x25], cl
je 0x39082f
or al, 2
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x12bfc]
push 1
push eax
call fcn.00048c90
mov esi, eax
cmp esi, ebp
jne 0x3903c0
lea eax, [esp + 0x4c]
push eax
push edi
call fcn.003a6fa0
push edi
call fcn.003ab710
cmp dword [edi + 0x12dd4], 1
mov esi, 0x800000
jne 0x3908a9
cmp ebx, ebp
je 0x3908a3
test dword [ebx + 0x14], esi
je 0x3908a3
test byte [ebx + 0x775], 1
je 0x3908a3
push edi
call fcn.0038ffd0
jmp 0x3908a9
lea ecx, [esp + 0x1c]
push ecx
call fcn.00048980
lea edx, [esp + 0x24]
push edx
call fcn.00048980
pop edi
pop esi
pop ebp
mov eax, 0xee00000
pop ebx
add esp, 0x64
ret 4
push edi
call fcn.00390060
cmp ebx, ebp
mov dword [edi + 0x12f78], ebp
je 0x3908ca
test dword [ebx + 0x14], esi
je 0x3908ca
test byte [ebx + 0x775], 1
je 0x3908ca
mov ecx, dword [ebx + 0x10]
mov dword [edi + 0x12f78], ecx
mov eax, dword [edi + 0x12f78]
cmp eax, ebp
mov ecx, dword [esp + 0x38]
je 0x3908e0
cmp ecx, ebp
je 0x39090e
cmp eax, ebp
jne 0x3908f0
cmp ecx, ebp
je 0x3908ec
lea eax, [esp + 0x78]
push eax
push ebp
jmp 0x390915
cmp eax, ebp
je 0x390925
cmp ecx, ebp
je 0x390925
cmp eax, ecx
je 0x390925
lea ecx, [esp + 0x78]
push ecx
push ebp
push 0x204
push 0xbfef0100
push edi
call fcn.00048560
lea edx, [esp + 0x78]
push edx
push 1
push 0x204
push 0xbfef0100
push edi
call fcn.00048560
cmp dword [esp + 0x3c], ebp
jne 0x39093d
cmp dword [edi + 0x12f54], 1
jbe 0x39093d
push 1
push ebp
push edi
call fcn.0038f0a0
cmp ebx, ebp
je 0x39096e
test byte [edi + 0x11], 1
je 0x39096e
mov esi, dword [ebx + 0x2a8]
cmp esi, 1
jne 0x390960
mov eax, dword [ebx + 0x278]
push eax
push ebx
push edi
call fcn.0039ea70
cmp dword [ebx + 0x2a8], esi
je 0x39096e
push ebx
call fcn.0039b8d0
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0xa8], 3
jne 0x390993
cmp ebx, ebp
je 0x39098a
push ebx
push edi
call fcn.0039b5d0
test eax, eax
jne 0x390993
push 0x20
push ebp
push edi
call fcn.0038f740
cmp dword [edi + 0x12f58], ebp
je 0x3909f0
cmp ebx, ebp
je 0x3909aa
push ebx
push edi
call fcn.0039b5d0
test eax, eax
jne 0x3909f0
mov esi, dword [edi + 0x10140]
push ebp
push edi
call fcn.000492d0
cmp esi, ebp
jne 0x3909cf
cmp dword [edi + 0x10140], ebp
je 0x3909f0
mov dword [edi + 0x12f58], 1
jmp 0x3909f0
cmp dword [edi + 0x10140], ebp
jne 0x3909f0
push 0x10042
push ebp
push 0x144001
push ebp
push ebp
push edi
mov dword [edi + 0x12f58], ebp
call fcn.0039cf80
cmp dword [esp + 0x30], ebp
jne 0x390a16
mov eax, dword [edi + 0x1047c]
test eax, 0x100000
je 0x390a16
test eax, eax
js 0x390a16
test byte [edi + 0x10480], 0x20
jne 0x390a16
push edi
call fcn.003aa080
and dword [edi + 0x1047c], 0xfffffffb
lea edx, [esp + 0x18]
push edx
call fcn.00048980
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64
ret 4