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

Disassembly:
sub esp, 0x108
mov eax, dword [esp + 0x118]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x11c]
mov ebx, dword [edi]
mov esi, dword [edi + 8]
lea eax, [eax + eax*4]
shl eax, 6
lea ebp, [eax + ebx + 0x30]
xor eax, eax
cmp dword [edi + 0x3c], eax
mov ecx, 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], eax
jle 0x39d978
mov edx, dword [esp + 0x128]
mov eax, dword [edi + 0xc]
push esi
lea esi, [esp + 0x48]
mov ecx, ebx
call fcn.0039d0f0
test eax, eax
jne 0x39e482
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0xa8]
cmp ecx, dword [ebp + 0xa8]
jne 0x39e482
mov edx, dword [eax + 0xac]
cmp edx, dword [ebp + 0xac]
jne 0x39e482
mov ecx, dword [eax + 0xb0]
cmp ecx, dword [ebp + 0xb0]
jne 0x39e482
mov edx, dword [eax + 0x118]
cmp edx, dword [ebp + 0x118]
jne 0x39e482
mov ecx, dword [eax + 0x11c]
cmp ecx, dword [ebp + 0x11c]
jne 0x39e482
cmp dword [edi + 0x34], 0
je 0x39d92e
test byte [eax + 0x104], 0x10
je 0x39e792
or byte [eax + 0x105], 0x80
push 0
push 1
push eax
mov ebx, ebp
call fcn.0039c610
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x12c]
push eax
mov eax, dword [esp + 0x2c]
mov ecx, 1
call fcn.0039d030
pop edi
pop esi
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
pop ebp
pop ebx
add esp, 0x108
ret 0x10
mov dword [ebp + 0x80], 3
test byte [esi + 0x10246], 0x58
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], eax
je 0x39d9a9
test byte [ebx + 9], 0x4b
je 0x39d9bf
mov dword [esp + 0x14], ecx
mov dword [ebp + 0x80], 2
jmp 0x39d9bf
test byte [edi + 0x11], 4
je 0x39d9bf
test byte [ebx + 9], 0x30
jne 0x39d9bf
mov dword [esp + 0x60], ecx
mov dword [ebp + 0x80], ecx
test byte [ebx + 8], 4
je 0x39d9d6
pop edi
pop esi
pop ebp
mov dword [esp + 0x14], eax
pop ebx
add esp, 0x108
ret 0x10
mov ecx, dword [edi + 0x10]
mov eax, ecx
shr eax, 0x15
xor edx, edx
and eax, 1
cmp dword [edi + 0x5c], 0x2078
mov dword [esp + 0x54], eax
sete dl
mov dword [esp + 0x18], 0
mov dword [esp + 0x50], edx
mov edx, ecx
and edx, 0x104001
je 0x39da11
mov dword [esp + 0x18], 0
jmp 0x39da3c
mov eax, dword [esi + 0x106b4]
test eax, eax
je 0x39da3c
imul eax, eax, 0x2b0
lea eax, [eax + esi + 0x1630]
test eax, eax
je 0x39da3c
mov eax, dword [eax + 0x104]
shr eax, 2
and eax, 1
mov dword [esp + 0x18], eax
cmp dword [esp + 0x128], 1
mov dword [esp + 0x38], 1
jne 0x39da56
mov dword [esp + 0x38], 0
test edx, edx
jne 0x39da62
test ecx, 0x800000
je 0x39da6a
mov dword [esp + 0x38], 0
mov eax, dword [edi + 0x48]
test eax, eax
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x50]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], edx
je 0x39da87
test ecx, ecx
jne 0x39da94
mov ecx, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ecx
mov eax, 0x80
test byte [ebx + 0xc], al
je 0x39dabd
cmp dword [esp + 0x128], 0
jne 0x39dabd
add ecx, 1
or dword [ebp + 0x104], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x58], 1
test byte [esi + 0x10246], 0x58
je 0x39db2d
test dword [edi + 0x10], 0x104001
je 0x39db0f
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10378]
mov edx, dword [esp + 0x11c]
mov edi, dword [ebp + 0xa8]
mov ebx, dword [esp + 0x48]
push ecx
mov ecx, dword [edx + 0x54]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push ecx
lea esi, [esp + 0x78]
call fcn.0039d250
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x28]
jmp 0x39db2d
mov edx, dword [esi + 0xac]
mov dword [esp + 0x68], edx
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x6c], eax
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x38], 0
je 0x39db7b
test byte [esi + 0x10246], 0x58
mov ebx, dword [esi + 0xc0]
je 0x39db5e
mov ecx, dword [esp + 0x68]
mov eax, 0x40
shl eax, cl
mov ecx, dword [esp + 0x6c]
cdq
idiv ebx
mov edx, 4
shl edx, cl
jmp 0x39db6d
mov eax, dword [esi + 0x1015c]
cdq
idiv ebx
mov edx, dword [esi + 0x10160]
sub eax, 1
add dword [esp + 0x2c], eax
sub edx, 1
add dword [esp + 0x1c], edx
mov eax, dword [ebp + 0x118]
imul eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x11c]
imul ecx, dword [esp + 0x1c]
mov esi, dword [esi + 0x10178]
add eax, 7
add ecx, 7
sar eax, 3
sar ecx, 3
cmp eax, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], ecx
ja 0x39dbb3
cmp ecx, esi
jbe 0x39dbd2
cmp dword [edi + 0x34], 0
je 0x39dbd2
pop edi
pop esi
mov dword [esp + 0x18], 0xee0000f
mov eax, dword [esp + 0x18]
pop ebp
pop ebx
add esp, 0x108
ret 0x10
mov eax, dword [ebp + 0xb0]
mov esi, dword [ebp + 0xac]
imul esi, dword [esp + 0x2c]
mov ebx, eax
imul eax, dword [esp + 0x58]
imul ebx, dword [esp + 0x1c]
add esi, 7
add ebx, 7
add eax, 7
sar esi, 3
sar eax, 3
xor edx, edx
sar ebx, 3
cmp dword [esp + 0x38], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x58], eax
jne 0x39dc41
mov eax, dword [esp + 0x28]
test byte [eax + 0x10246], 0x58
je 0x39dc41
test dword [edi + 0x10], 0x104001
jne 0x39dc41
mov ecx, dword [ebp + 0xa8]
mov edx, dword [esp + 0x48]
push ecx
push edx
push ebx
push esi
lea eax, [esp + 0x78]
push eax
call fcn.003ac920
xor edx, edx
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x138], 1
mov eax, dword [ecx + 4]
mov dword [ebp + 0x10], eax
cmp dword [edi + 0x40], 2
jne 0x39dc78
cmp dword [edi + 0x34], edx
je 0x39e482
cmp dword [esp + 0x14], edx
jne 0x39e482
cmp dword [esp + 0x60], edx
jne 0x39e482
cmp dword [edi + 0x34], edx
je 0x39e7b7
cmp dword [esp + 0x14], edx
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], edx
je 0x39dcc4
mov ecx, dword [esp + 0x68]
mov edx, 0x40
shl edx, cl
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx - 1]
add edx, 0xffffffff
not edx
and ecx, edx
xor edx, edx
jmp 0x39dcfd
cmp eax, 3
jne 0x39dce8
mov ecx, dword [esp + 0x24]
test byte [ecx + 9], 1
je 0x39dce8
test dword [edi + 0x10], 0x104001
jne 0x39dce8
lea ecx, [esi*4 + 0x3f]
and ecx, 0xffffffc0
jmp 0x39dcfd
mov ecx, eax
imul ecx, esi
add ecx, 0x3f
and ecx, 0xffffffc0
mov dword [ebp + 0x64], ecx
mov ecx, dword [edi + 0x44]
cmp ecx, edx
je 0x39dd00
mov dword [ebp + 0x64], ecx
lea ecx, [eax - 1]
cmp ecx, 0xf
ja case.0x39dd0f.5
movzx ecx, byte [ecx + 0x39e978]
jmp dword [ecx*4 + 0x39e95c]
mov dword [esp + 0x10], 1
jmp 0x39dd56
mov dword [esp + 0x10], 2
jmp 0x39dd56
mov dword [esp + 0x10], 3
jmp 0x39dd56
mov dword [esp + 0x10], 4
jmp 0x39dd56
mov dword [esp + 0x10], 5
jmp 0x39dd56
mov dword [esp + 0x10], 6
jmp 0x39dd56
mov dword [esp + 0x10], edx
cmp dword [esp + 0x14], edx
je 0x39df4c
mov eax, dword [esp + 0x48]
or byte [esp + 0x12], 2
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
and eax, 0xff00
cmp eax, 0x800
mov ecx, 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x30], edx
ja 0x39dded
je 0x39dde7
cmp eax, 0x100
je 0x39ddf8
cmp eax, 0x200
jne 0x39e792
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x12c]
push ebx
push esi
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
mov eax, dword [esp + 0x148]
lea ecx, [esp + 0x30]
mov edx, edi
call fcn.0039d6c0
mov dword [esp + 0x18], 1
jmp 0x39de48
mov dword [esp + 0x18], edx
jmp 0x39de4f
cmp eax, 0x4000
jne 0x39e792
mov edi, dword [esp + 0x128]
lea ecx, [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x130]
push ecx
mov ecx, dword [esp + 0x130]
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esp + 0x138]
push edx
call fcn.0039d440
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x18], 0
xor edx, edx
mov ecx, 1
cmp dword [esp + 0x50], edx
mov dword [esp + 0x14], 2
je 0x39de67
mov dword [esp + 0x4c], 6
jmp 0x39de7b
mov eax, dword [edi + 0x54]
cmp eax, dword [edi + 0x58]
je 0x39de7f
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], ecx
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0xa8]
cdq
idiv ecx
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0x10378]
mov esi, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x5c]
push edx
push ecx
mov ecx, dword [esp + 0x88]
push ecx
lea edx, [esp + 0x7c]
mov edi, ebx
push eax
push edx
mov dword [esp + 0x98], eax
call fcn.0039d2c0
mov ecx, dword [esp + 0x11c]
xor edx, edx
mov dword [ebp + 0xa0], edx
mov dword [ebp + 0xa4], edx
mov esi, dword [ecx + 0x54]
cmp esi, dword [ecx + 0x58]
je 0x39dee8
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
jmp 0x39def6
cmp dword [esp + 0x50], edx
je 0x39df02
mov dword [esp + 0x40], 6
mov dword [ebp + 0xa0], eax
mov dword [ebp + 0xa4], edx
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x88], edx
mov dword [ebp + 0x8c], ebx
mov dword [ebp + 0x90], eax
mov ecx, dword [esp + 0x68]
mov dword [ebp + 0x94], ecx
mov edx, dword [esp + 0x6c]
mov dword [ebp + 0x98], edx
mov eax, dword [esp + 0x70]
mov dword [ebp + 0x9c], eax
jmp 0x39e200
cmp dword [esp + 0x60], edx
mov ecx, dword [esp + 0x24]
je 0x39dfa2
test byte [ecx + 9], 0x43
je 0x39e792
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push edx
push ecx
push eax
mov eax, esi
call fcn.0039d1c0
mov ecx, eax
and eax, 0x7ff
mov dword [esp + 0x30], ecx
je 0x39df8c
mov edx, 0x800
sub edx, eax
add ecx, edx
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x28]
mov eax, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
jmp 0x39e200
mov ecx, dword [ecx + 8]
and ecx, 0xff00
cmp ecx, 0x1000
mov dword [esp + 0x4c], edx
ja 0x39e07b
je 0x39e04f
cmp ecx, 0x400
ja 0x39e02e
je 0x39e792
cmp ecx, 0x100
je 0x39e0be
cmp ecx, 0x200
jne 0x39e097
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x5c]
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x2c]
push ebx
push esi
push 0
push ecx
push edx
push eax
mov eax, dword [esp + 0x148]
lea ecx, [esp + 0x30]
mov edx, edi
call fcn.0039d6c0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 6
jmp 0x39e160
cmp ecx, 0x800
jne 0x39e097
mov dword [esp + 0x3c], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 6
jmp 0x39e160
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
add eax, 0x7f
and al, 0x80
add ebx, 0x7f
and ebx, 0xffffff80
mov dword [esp + 0x3c], edx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x68], eax
mov edx, dword [ecx + 0x12be8]
jmp 0x39e135
cmp ecx, 0x2000
je 0x39e10e
cmp ecx, 0x4000
je 0x39e0be
cmp ecx, 0x8000
je 0x39e0a0
mov dword [esp + 0x18], edx
jmp 0x39e158
imul eax, esi
add eax, 0x3f
and al, 0xc0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], edx
mov dword [ebp + 0x68], esi
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x64], eax
jmp 0x39e158
mov edi, dword [esp + 0x128]
lea eax, [esp + 0x64]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x12c]
lea edx, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x12c]
push 0
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
call fcn.0039d440
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 6
jmp 0x39e160
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
add eax, 0x7f
and al, 0x80
add ebx, 0x7f
and ebx, 0xffffff80
mov dword [esp + 0x3c], edx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x68], eax
mov edx, dword [ecx + 0x12be4]
imul edx, eax
shr edx, 3
add edx, 0x3f
and edx, 0xffffffc0
mov dword [esp + 0x18], 9
mov dword [esp + 0x2c], eax
mov dword [ebp + 0x64], edx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x14], 2
mov ecx, dword [esp + 0x11c]
mov eax, dword [ecx + 0x5c]
cmp eax, 0x20a2
je 0x39e18a
cmp eax, 0x2077
je 0x39e1d0
mov eax, dword [esp + 0x2c]
lea edx, [eax - 1]
test eax, edx
jne 0x39e18a
lea eax, [ebx - 1]
test ebx, eax
je 0x39e1d0
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x10150]
mov edx, dword [ebp + 0x64]
lea edx, [eax + edx - 1]
add eax, 0xffffffff
not eax
and edx, eax
mov dword [ebp + 0x64], edx
cmp dword [edi + 0x10278], 0
je 0x39e1d4
cmp dword [ecx + 0x5c], 0x20a2
je 0x39e1d4
pop edi
pop esi
mov dword [esp + 0x18], 0xee00006
mov eax, dword [esp + 0x18]
pop ebp
pop ebx
add esp, 0x108
ret 0x10
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
je 0x39e1e3
mov eax, dword [ebp + 0x64]
imul eax, ebx
jmp 0x39e1fc
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x64]
push eax
push ecx
push edx
mov edx, dword [esp + 0x38]
mov ecx, ebx
call fcn.0039d150
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x11c]
mov eax, dword [eax + 0x10]
test eax, 0x104001
jne 0x39e253
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 8]
and edx, 0xff00
cmp edx, 0x100
jne 0x39e253
test eax, 0x800000
je 0x39e253
test byte [edi + 0x1047f], 0x40
jne 0x39e23b
and byte [esp + 0x11], 0xcf
cmp dword [edi + 0x10458], 0
je 0x39e258
or byte [esp + 0x35], 1
mov dword [esp + 0x44], 0x1000
jmp 0x39e258
or byte [esp + 0x35], 0x10
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [ecx + 8]
and eax, 0xff00
push edi
call fcn.0039d380
mov esi, dword [esp + 0x14]
cmp esi, 6
mov dword [ebp + 0x30], eax
jne 0x39e2f8
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x39e2d4
cmp dword [esp + 0x54], ecx
jne 0x39e2d4
test byte [edi + 0x1047d], 8
jne 0x39e2d4
mov eax, dword [esp + 0x11c]
mov edx, dword [eax + 0x48]
imul edx, dword [eax + 0x4c]
cmp edx, 0x1000
jle 0x39e2db
mov eax, dword [eax + 0x40]
sub eax, 1
je 0x39e2f3
sub eax, 1
je 0x39e2ec
sub eax, 1
jne 0x39e2f8
test ecx, ecx
jne 0x39e2c4
cmp dword [esp + 0x54], ecx
je 0x39e2cd
mov esi, 2
mov dword [esp + 0x14], esi
and byte [esp + 0x11], 0xc
jmp 0x39e2f8
mov eax, dword [esp + 0x11c]
cmp dword [eax + 0x40], 2
je 0x39e482
mov eax, 3
jmp 0x39e2ab
or byte [esp + 0x11], 1
jmp 0x39e2f8
or byte [esp + 0x11], 2
push 0x88
push 0
lea eax, [esp + 0x88]
push eax
call fcn.000489a0
test byte [edi + 0x1047d], 2
mov ecx, dword [edi + 0x10484]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0xbfef0100
mov dword [esp + 0x88], esi
je 0x39e466
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
test ch, 0x6b
je 0x39e466
mov eax, dword [esp + 0x11c]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [esp + 0x38], 1
je 0x39e37d
test byte [eax + 0x775], 2
je 0x39e37d
cmp dword [edi + 0x10450], 0
je 0x39e375
test ch, 0x4a
jne 0x39e37d
mov dword [esp + 0x38], 0
test byte [edi + 0x10245], 2
je 0x39e3e2
cmp word [edi + 0x10344], 0x10de
jne 0x39e3e2
cmp dword [edi + 0x10328], 0x20
jne 0x39e3e2
test ch, 2
je 0x39e3b9
movzx edx, word [edi + 0x10346]
and edx, 0xfffffffc
cmp edx, 0x70
jne 0x39e3b9
mov esi, 1
mov dword [esp + 0x1c], esi
jmp 0x39e3e6
test ch, 1
je 0x39e3e2
movzx eax, word [edi + 0x10346]
and al, 0xf8
cmp eax, 0x2f0
jne 0x39e3e2
test byte [edi + 0x10385], 2
je 0x39e3e2
mov esi, 1
mov dword [esp + 0x1c], esi
jmp 0x39e3e6
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x12ddc]
test al, 1
je 0x39e3f5
test ch, 1
jne 0x39e3fe
test al, 2
je 0x39e407
test ch, 2
je 0x39e407
mov esi, 1
mov dword [esp + 0x1c], esi
cmp dword [edi + 0x10334], 0
jne 0x39e419
mov esi, 1
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x11c]
mov eax, dword [edx + 0x38]
test eax, eax
je 0x39e430
mov esi, 1
mov dword [esp + 0x1c], esi
test ch, 0x20
je 0x39e451
test byte [edi + 0x10385], 0x40
je 0x39e449
mov esi, 1
mov dword [esp + 0x1c], esi
jmp 0x39e455
mov dword [esp + 0x38], 0
test esi, esi
je 0x39e46a
test cl, 2
je 0x39e46a
test eax, eax
jne 0x39e46a
xor esi, esi
mov dword [esp + 0x1c], esi
jmp 0x39e46a
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x11c]
cmp dword [eax + 0x38], 0
je 0x39e49b
cmp dword [esp + 0x38], 0
je 0x39e482
test esi, esi
jne 0x39e49f
pop edi
pop esi
mov dword [esp + 0x18], 0xee00000
mov eax, dword [esp + 0x18]
pop ebp
pop ebx
add esp, 0x108
ret 0x10
test esi, esi
je 0x39e4b1
mov eax, dword [edi + 0xc]
or byte [esp + 0x13], 2
shl eax, 0x10
xor eax, 0xbeef0202
jmp 0x39e4bc
mov eax, dword [edi + 0xc]
shl eax, 0x10
xor eax, 0xbeef0201
cmp dword [esp + 0x3c], 0
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x2c], eax
je 0x39e4f2
test byte [edi + 0x1047d], 4
je 0x39e4eb
mov ecx, dword [edi + 0xc]
shl ecx, 0x10
xor ecx, 0xbeef0202
cmp eax, ecx
jne 0x39e4f2
cmp dword [edi + 0x10450], 0
jne 0x39e4f2
mov eax, 1
jmp 0x39e4f4
xor eax, eax
cmp dword [esp + 0x64], 0
mov dword [esp + 0x3c], eax
jne 0x39e508
test eax, eax
jne 0x39e508
or byte [esp + 0x35], 0x80
push ebp
lea edx, [ebp + 0x20]
push edi
call fcn.0039bc40
test eax, eax
jne 0x39e94a
mov esi, dword [esp + 0x28]
cmp dword [esi + 0x10258], 7
mov eax, dword [esp + 0x34]
jge 0x39e537
mov ecx, 0x20000000
or eax, 0x20000
jmp 0x39e53b
mov ecx, dword [esp + 0x74]
mov edx, dword [ebp + 0x30]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xac], eax
xor eax, eax
cmp dword [esp + 0x14], 6
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xb0], eax
jne 0x39e5d4
mov dword [esp + 0xc4], edx
mov edx, dword [ebp + 0x64]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edi
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xcc], edx
jmp 0x39e5fb
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x24]
push ebp
push edi
push eax
lea eax, [ecx + 0x34]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + 8]
push eax
push ecx
call fcn.0004b350
lea edx, [esp + 0x80]
push edx
push ebp
push esi
call fcn.0039be20
test eax, eax
je 0x39e6f4
cmp dword [esp + 0x38], 0
je 0x39e6ec
mov ecx, dword [esp + 0x11c]
cmp dword [ecx + 0x38], 0
jne 0x39e6ec
cmp dword [esp + 0x1c], 0
jne 0x39e6ec
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x39e673
test byte [eax + 0x774], 0x20
je 0x39e792
and byte [esp + 0xad], 0x7f
and edi, 0xfbffffff
or edi, 0x2000000
cmp dword [esp + 0x14], 6
jne 0x39e697
mov dword [esp + 0xc0], edi
jmp 0x39e69e
mov dword [esp + 0xb8], edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x24]
shl eax, 0x10
xor eax, 0xbeef0202
push ebp
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x12c]
push edi
push eax
lea eax, [ecx + 0x34]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + 8]
push eax
push ecx
mov dword [esp + 0x54], 1
call fcn.0004b350
lea edx, [esp + 0x80]
push edx
push ebp
push esi
call fcn.0039be20
test eax, eax
jne 0x39e792
mov eax, dword [esp + 0x24]
test byte [eax + 9], 2
je 0x39e736
test byte [esi + 0x10386], 2
je 0x39e736
mov edx, dword [ebp + 0x20]
mov eax, dword [esi + 0x10484]
push 4
lea ecx, [esp + 0x78]
push ecx
push 6
push edx
push eax
push esi
call fcn.00048620
mov eax, dword [esp + 0x74]
cmp eax, 4
je 0x39e72f
cmp eax, 2
jne 0x39e736
or byte [ebp + 0x106], 1
mov ecx, dword [ebp + 0x20]
mov edx, dword [esi + 0x10484]
push 4
lea edi, [ebp + 0x12c]
push edi
push 5
push ecx
push edx
push esi
call fcn.00048620
test eax, eax
je 0x39e75c
mov dword [edi], 0
cmp dword [esp + 0x3c], 0
je 0x39e7ab
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x20]
push 0
lea edi, [ebp + 0xc]
push edi
push eax
push ecx
push 0
push 0
push edx
push 0xbfef0100
push esi
call fcn.000486c0
test eax, eax
je 0x39e86f
mov dword [edi], 0
pop edi
pop esi
mov dword [esp + 0x18], 0xee00006
mov eax, dword [esp + 0x18]
pop ebp
pop ebx
add esp, 0x108
ret 0x10
mov dword [ebp + 0xc], 0
jmp 0x39e86f
test byte [edi + 0x11], 4
jne 0x39e792
mov eax, dword [ebp + 0xa8]
mov edi, dword [edi + 0x5c]
imul eax, esi
add eax, 0x3f
and al, 0xc0
cmp edi, 0x20a2
mov dword [esp + 0x44], eax
je 0x39e7f0
cmp edi, 0x2077
je 0x39e805
lea edx, [esi - 1]
test esi, edx
jne 0x39e7f0
lea edx, [ebx - 1]
test ebx, edx
je 0x39e805
mov ecx, dword [ecx + 0x10150]
lea eax, [eax + ecx - 1]
add ecx, 0xffffffff
not ecx
and eax, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
push ecx
push edx
push edi
mov ecx, ebx
mov edx, esi
call fcn.0039d150
mov esi, eax
push 0x7264476e
push esi
call fcn.00048910
xor ecx, ecx
cmp eax, ecx
mov dword [ebp + 0xc], eax
je 0x39e792
or eax, 0xffffffff
mov dword [ebp + 0x18], esi
mov esi, dword [esp + 0x28]
mov dword [ebp + 0x80], 3
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0x128], eax
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x100], ecx
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
or dword [ebp + 0x104], 2
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x104]
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x70], ecx
test byte [esi + 0x10387], 4
je 0x39e8ab
mov edx, dword [esp + 0x24]
mov ecx, 0x2000
test dword [edx + 8], ecx
je 0x39e8ab
mov dword [ebp + 0x68], ecx
test al, 0x10
je 0x39e94a
mov eax, dword [ebp + 0xa8]
cmp eax, 2
je 0x39e8c7
cmp eax, 4
jne 0x39e94a
mov eax, dword [ebp]
mov edx, dword [ebp + 0x68]
lea esi, [ebp + 0x58]
mov ecx, 0x22
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
and ecx, 0xff00
sub ecx, 0x200
neg ecx
sbb ecx, ecx
and cl, 0x34
push 0xffffffffffffffff
mov dword [esp + 0x114], edx
lea edx, [esp + 0x84]
lea eax, [esp + 0x10c]
mov dword [esp + 0x118], ebx
add ecx, 0xcc
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
call fcn.003958d0
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret 0x10