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

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x2c]
push esi
push edi
mov edi, dword [esp + 0x30]
test edi, edi
mov esi, ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
je 0x4708bb
mov eax, dword [edi + 0x20]
test eax, eax
je 0x470875
mov ecx, dword [esi + 0x3e0]
cmp eax, dword [ecx + 0xba4]
je 0x4708d2
lea eax, [edi + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
test eax, eax
je 0x4708bb
mov edx, dword [eax + 0x1c]
cmp edx, dword [ebx + 0xe8]
jge 0x470892
add eax, 0xc
jmp 0x470878
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebx + 0xe8]
jne 0x4708bb
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x4708bb
mov eax, dword [ecx + 0x210]
test eax, eax
jne 0x4708b6
call fcn.00494e90
cmp eax, 6
jge 0x4708d2
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x4708dd
mov ecx, dword [esi + 0x3e0]
push 1
call fcn.004a78e0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x20
ret 8
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax + 0x1c]
push ebp
push 0
push eax
push 0x90
call fcn.005c0140
add esp, 0xc
test eax, eax
je 0x470908
mov ecx, eax
call fcn.004844f0
mov ebp, eax
test ebp, ebp
jne 0x470914
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x20
ret 8
push 0
mov ecx, ebp
call fcn.0048cff0
mov edx, dword [ebp + 0x54]
and edx, 0xfffffdff
lea eax, [ebp + 8]
mov dword [ebp + 0x54], edx
cmp dword [eax], edi
jne 0x470938
test edi, edi
jne 0x470938
mov dword [eax], edi
jmp 0x470942
push edi
push eax
call fcn.005bf920
add esp, 8
mov eax, dword [ebp + 0xc]
test eax, eax
lea esi, [ebp + 0xc]
jne 0x470954
mov dword [esi], 0
jmp 0x47095f
push 0
push esi
call fcn.005bf920
add esp, 8
test edi, edi
je 0x4709b8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
je 0x470997
mov edx, dword [eax + 8]
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x470997
cmp eax, ecx
jne 0x470997
cmp dword [esi], 0
jne 0x47098a
mov dword [esi], 0
jmp 0x4709a3
push 0
push esi
call fcn.005bf920
add esp, 8
jmp 0x4709a3
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.0043ae00
mov ecx, dword [esp + 0x14]
push ebp
call fcn.0043ae30
or dword [edi + 0x54], 0x1000
mov ecx, edi
jmp 0x4709c2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xe0]
call fcn.0044a730
mov ecx, ebp
push eax
call fcn.0044c180
lea ecx, [ebp + 0x7c]
push ecx
call fcn.0043bf60
mov edx, dword [ebx + 0xe0]
mov dword [ebp + 0x18], edx
lea edi, [ebp + 0x30]
mov ecx, 7
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xe8]
xor ecx, ecx
mov dword [ebp + 0x1c], eax
mov cx, word [ebx + 0xec]
add esp, 4
push ecx
mov ecx, ebp
call fcn.0048a120
mov dword [ebp + 0x54], 0
test dword [ebx + 0xdc], 0x20000
mov edi, 0x400
je 0x470a25
mov dword [ebp + 0x54], edi
mov edx, dword [ebx + 0x118]
push edx
mov ecx, ebp
call fcn.00481330
mov al, byte [ebx + 0xf0]
test al, al
mov eax, dword [ebp + 0x54]
je 0x470a45
or eax, 4
jmp 0x470a48
and eax, 0xfffffffb
mov dword [ebp + 0x54], eax
mov cl, byte [ebx + 0x10c]
test cl, cl
je 0x470a5c
or eax, 0x80
jmp 0x470a61
and eax, 0xffffff7f
or eax, 0x10
mov dword [ebp + 0x54], eax
mov ecx, dword [ebx + 0xe0]
test byte [ecx + 0x7f], 1
je 0x470a7a
or eax, 0x200000
jmp 0x470a7f
and eax, 0xffdfffff
mov dword [ebp + 0x54], eax
mov edx, dword [ebx + 0xe0]
cmp dword [edx + 0x78], 0x61
jne 0x470a95
or eax, 0x400000
jmp 0x470a9a
and eax, 0xffbfffff
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 4]
xor esi, esi
push esi
mov ecx, ebp
mov dword [eax + 0x1c], esi
call fcn.00489910
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
lea eax, [ebp + 0x10]
jne 0x470abb
mov dword [eax], esi
jmp 0x470ac5
push esi
push eax
call fcn.005bf920
add esp, 8
push esi
mov ecx, ebp
call fcn.0048a090
push esi
mov ecx, ebp
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
call fcn.00489990
fld qword [0x5d76b8]
fstp qword [ebp + 0x58]
push esi
fld qword [0x5d87c8]
mov ecx, ebp
fstp qword [ebp + 0x68]
mov dword [ebp + 0x60], esi
fld qword [0x5d87c8]
mov dword [ebp + 0x64], esi
fstp qword [ebp + 0x70]
call fcn.00489ef0
mov ecx, dword [ebp + 0x18]
cmp dword [ecx + 0x5c], esi
je 0x470b22
lea edx, [esp + 0x20]
push edx
call fcn.00481220
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
call fcn.00489cc0
mov ecx, ebp
call fcn.0048d080
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00489e70
push esi
mov ecx, ebp
call fcn.00489a20
xor ecx, ecx
mov cl, byte [ebx + 0x10d]
push ecx
mov ecx, ebp
call fcn.00489c40
test dword [ebx + 0xdc], edi
mov edi, dword [esp + 0x10]
je 0x470bdc
mov byte [edi + 0x3ec], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x20], esi
jne 0x470bac
push 0x3c8
call fcn.0043f000
mov esi, eax
add esp, 4
test esi, esi
je 0x470ba0
mov eax, dword [edi + 0x3e0]
push 0
push eax
mov ecx, ebp
call fcn.00482f80
mov ecx, dword [edi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, esi
call fcn.004478e0
jmp 0x470ba2
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489a20
xor esi, esi
mov al, byte [ebx + 0x114]
test al, al
je 0x470bc7
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x368]
or ecx, 2
jmp 0x470bd6
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax + 0x368]
and ecx, 0xfffffffd
mov dword [eax + 0x368], ecx
mov eax, dword [ebx + 0xdc]
test ah, 1
je 0x470c7c
cmp dword [ebx + 0x110], esi
je 0x470c7c
mov byte [edi + 0x3ec], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x20], esi
jne 0x470c47
push 0x3c8
call fcn.0043f000
mov esi, eax
add esp, 4
test esi, esi
je 0x470c3d
mov eax, dword [edi + 0x3e0]
push 0
push eax
mov ecx, ebp
call fcn.00482f80
mov ecx, dword [edi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, esi
call fcn.004478e0
jmp 0x470c3f
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489a20
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 0x20]
mov dword [ecx + 0x368], 0x10
mov eax, dword [ebp + 4]
mov edx, dword [ebx + 0x110]
mov ecx, dword [eax + 0x20]
push edx
add ecx, 0x380
call fcn.00447830
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x20]
or dword [eax + 0x32c], 8
mov edi, dword [esp + 0x38]
lea edx, [edi + 0x1c]
push edx
mov ecx, ebp
call fcn.00489f70
mov esi, dword [esp + 0x34]
test esi, esi
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x68]
mov dword [esp + 0x14], 0
je 0x470cee
mov eax, dword [ebx + 0x24c]
test eax, eax
je 0x470cee
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x470cbc
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl 0x470cee
mov ecx, esi
test ecx, ecx
je 0x470cee
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x470cee
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x470cee
mov edx, dword [eax + 0x24c]
test edx, edx
je 0x470ce4
mov ecx, dword [ecx + 8]
jmp 0x470cc3
mov ecx, dword [ecx + 0x20]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x14], edx
mov ecx, dword [edi + 0xf4]
add edi, 0xf4
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x470d0f
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x470df0
and ecx, 0x1f
cmp ecx, eax
jne 0x470df0
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x470d37
mov ecx, dword [eax + 0x78]
cmp ecx, 6
je 0x470d41
cmp ecx, 0x61
je 0x470d41
cmp dword [eax + 0x78], 2
je 0x470d41
xor esi, esi
jmp 0x470d46
mov esi, 1
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x470d57
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl 0x470d6e
test esi, esi
jne 0x470d69
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x78], 9
jne 0x470d6e
mov esi, 1
mov al, byte [ebx + 0x51e]
test al, al
jne 0x470d7c
test esi, esi
je 0x470df0
xor eax, eax
push str.instance
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
call fcn.0043a000
mov esi, dword [esp + 0x10]
mov edx, dword [esi + 0x378]
inc edx
mov eax, edx
push 0xa
push eax
lea ecx, [esp + 0x28]
mov dword [esi + 0x378], edx
call fcn.00439ce0
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xd0]
lea edx, [esp + 0x20]
push edx
call fcn.004b19b0
push eax
lea ecx, [ebp + 0x14]
call fcn.00423c10
mov edx, dword [ebp + 0x54]
mov eax, dword [esp + 0x20]
or edx, 0x80000
push eax
mov dword [ebp + 0x54], edx
call fcn.0043f020
add esp, 4
jmp 0x470e1b
mov ecx, edi
call fcn.00450900
test al, al
jne 0x470e17
mov ecx, dword [edi]
push ecx
mov ecx, dword [ebx + 0xd0]
lea edx, [esp + 0x20]
push edx
call fcn.0040e060
push eax
lea ecx, [ebp + 0x14]
call fcn.00423c10
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470e31
add eax, 0x20
lea ecx, [ebp + 0x20]
push eax
call fcn.0043ae00
jmp 0x470e4e
mov ecx, dword [ebp + 0x20]
test ecx, ecx
lea eax, [ebp + 0x20]
jne 0x470e43
mov dword [eax], 0
jmp 0x470e4e
push 0
push eax
call fcn.005bf920
add esp, 8
mov eax, dword [esp + 0x38]
test byte [eax + 0xdc], 0x40
je 0x470e64
movzx eax, word [eax + 0xee]
jmp 0x470e66
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489bc0
mov ecx, dword [ebp + 0x24]
test ecx, ecx
lea eax, [ebp + 0x24]
jne 0x470e80
mov dword [eax], 0
jmp 0x470e8b
push 0
push eax
call fcn.005bf920
add esp, 8
mov ecx, dword [ebp + 0x54]
and ecx, 0xffffefff
push 0
mov dword [ebp + 0x54], ecx
push 1
mov ecx, ebp
mov dword [ebp + 0x28], 0
call fcn.004860e0
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0x78]
cmp eax, 0x61
ja case.0x470ebf.1
movzx eax, byte [eax + 0x4716e8]
jmp dword [eax*4 + 0x4716cc]
mov ecx, dword [ecx + 0x68]
mov al, byte [ecx + 0x51e]
test al, al
je case.0x470ebf.1
mov ecx, esi
push ebp
call fcn.00470710
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
push 0xffff
mov ecx, ebp
call fcn.00489b40
push 0x2c
call fcn.0043f000
mov edx, eax
add esp, 4
xor eax, eax
test edx, edx
je 0x470f14
mov ecx, 0xb
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
push eax
mov ecx, ebp
call fcn.004897d0
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 8]
call fcn.0046b9d0
push ebp
call fcn.004cb9c0
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax + 0x1c]
push 0
push eax
push 0xd4
call fcn.005c0140
add esp, 0x10
test eax, eax
je case.0x470ebf.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049ed10
mov esi, eax
test esi, esi
je case.0x470ebf.1
mov ecx, esi
call fcn.0049cae0
push esi
lea ecx, [ebp + 0x20]
call fcn.0043ae30
push ebx
mov ecx, esi
call fcn.0049c9d0
mov ecx, ebp
call fcn.00482f80
push eax
mov ecx, esi
call fcn.0049ca60
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esi + 0x30]
call fcn.0043ae30
mov edx, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], edx
call fcn.0046ed00
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x44], ebx
mov word [esi + 0x2a], 2
call fcn.00487910
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0xb4]
mov edx, dword [ecx + 0x2c]
push edx
jmp 0x47112d
movzx edi, word [esi + 0x14c]
mov eax, dword [ebp + 0x1c]
cmp eax, edi
mov edx, 1
jne 0x47101a
mov edi, dword [ebp + 8]
cmp edi, dword [esi + 0x144]
jne 0x47101a
cmp ecx, dword [esi + 0x148]
jne 0x47101a
mov edi, dword [ebp + 4]
mov di, word [edi + 0x5a]
cmp di, word [esi + 0x14e]
jne 0x47101a
mov edx, dword [esi + 0x140]
mov dword [esi + 0x13c], ebp
jmp 0x471054
movzx edi, word [esi + 0x160]
cmp eax, edi
jne 0x471054
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x158]
jne 0x471054
cmp ecx, dword [esi + 0x15c]
jne 0x471054
mov ecx, dword [ebp + 4]
mov ax, word [ecx + 0x5a]
cmp ax, word [esi + 0x162]
jne 0x471054
mov edx, dword [esi + 0x154]
mov dword [esi + 0x150], ebp
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0x68]
mov cl, byte [eax + 0x51e]
test cl, cl
jne 0x47106f
push 0
push edx
push ebp
mov ecx, esi
call fcn.00472070
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x471080
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl case.0x470ebf.1
mov ecx, dword [esi + 0x3e0]
mov eax, dword [ecx + 0x1c]
push 0
push eax
push 0xd4
call fcn.005c0140
add esp, 0xc
test eax, eax
je case.0x470ebf.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049ed10
mov esi, eax
test esi, esi
je case.0x470ebf.1
mov ecx, esi
call fcn.0049cae0
push esi
lea ecx, [ebp + 0x20]
call fcn.0043ae30
push ebx
mov ecx, esi
call fcn.0049c9d0
mov ecx, ebp
call fcn.00482f80
push eax
mov ecx, esi
call fcn.0049ca60
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.0043ae30
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ed00
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x44], ebx
mov word [esi + 0x2a], 2
call fcn.00487910
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xb4]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [esi + 0xb4]
call fcn.0049c6b0
cmp dword [edi + 0x11c], ebx
jne case.0x470ebf.1
mov ecx, edi
push ebp
call fcn.00470710
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
mov ecx, ebp
call fcn.0048a9b0
mov edx, dword [esi + 0x11c]
xor edi, edi
test edx, edx
je 0x471194
mov eax, ebp
lea ecx, [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
je 0x47117d
mov eax, ecx
test eax, eax
jne 0x471170
xor ecx, ecx
test eax, eax
setne cl
mov edi, ecx
test edi, edi
je 0x471194
mov dword [esi + 0x120], 1
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x4711a5
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl 0x471294
mov edx, dword [esi + 0x3e0]
mov eax, dword [edx + 0x1c]
push 0
push eax
push 0xd4
call fcn.005c0140
add esp, 0xc
test eax, eax
je case.0x470ebf.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049ed10
mov esi, eax
test esi, esi
je case.0x470ebf.1
mov ecx, esi
call fcn.0049cae0
push esi
lea ecx, [ebp + 0x20]
call fcn.0043ae30
push ebx
mov ecx, esi
call fcn.0049c9d0
mov ecx, ebp
call fcn.00482f80
push eax
mov ecx, esi
call fcn.0049ca60
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.0043ae30
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ed00
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 4], ebx
mov word [esi + 0x2a], 2
call fcn.00487910
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xb4]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esi + 0xb4]
push eax
call fcn.0049c6b0
cmp edi, ebx
jne 0x471270
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x471270
call fcn.00431690
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne case.0x470ebf.1
push ebp
call fcn.00470710
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
test edi, edi
jne case.0x470ebf.1
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x18]
test ecx, ecx
je case.0x470ebf.1
call fcn.00431690
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xdc]
xor edi, edi
test ecx, 0x10000
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
je 0x471375
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebx + 0x1c4]
jl case.0x470ebf.1
mov edx, dword [esi + 0x3e0]
mov eax, dword [edx + 0x1c]
push edi
push eax
push 0x530
call fcn.005c0140
add esp, 0xc
test eax, eax
je 0x471320
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049efe0
mov esi, eax
jmp 0x471322
xor esi, esi
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 4]
mov edi, dword [ebx + 0x34]
mov dword [esi + 4], ecx
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0x1e4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x1e4], edx
mov ecx, dword [eax + 0x3e0]
push ecx
mov ecx, esi
mov dword [esp + 0x38], esi
call fcn.0049d0e0
mov dword [esi + 0x1d8], 1
mov edx, dword [ebx + 0x1c8]
mov dword [esi + 0x1c8], edx
mov ecx, esi
jmp 0x471379
mov esi, ebx
mov ecx, ebx
call fcn.0046ced0
test esi, esi
je case.0x470ebf.1
mov ecx, esi
call fcn.0049cae0
push esi
lea ecx, [ebp + 0x20]
call fcn.0043ae30
mov eax, dword [esp + 0x34]
push eax
mov ecx, esi
call fcn.0049c9d0
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esi + 0x30]
call fcn.0043ae30
mov edx, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], edx
call fcn.0046ed00
mov ecx, ebp
call fcn.00482f80
push eax
mov ecx, esi
call fcn.0049ca60
mov eax, dword [ebx + 0x1c4]
mov ecx, dword [ebx + 4]
push eax
push edi
push ecx
lea ecx, [esi + 4]
call fcn.00491160
mov edx, dword [ebx + 0x3c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x34], edi
mov edi, dword [esp + 0x38]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x44], ecx
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x47168e
mov dword [esi + 0x64], esi
mov edx, dword [edi + 0x11c]
mov eax, dword [edi + 0x104]
push edx
mov edx, dword [edi + 0x108]
push eax
mov eax, dword [edi + 0xfc]
push edx
mov edx, dword [edi + 0xf8]
push eax
lea ecx, [esi + 0x5c]
push edx
call fcn.004018d0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.00401990
mov eax, dword [edi + 0xe0]
test byte [eax + 0x7f], 1
je 0x471477
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x471469
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl 0x471477
and byte [esi + 0x28], 0xf7
jmp 0x47168e
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.00401990
or byte [esi + 0x28], 8
jmp 0x47168e
test byte [ecx + 8], 0x1e
je 0x4714e5
push 0x3c8
call fcn.0043f000
mov edi, eax
add esp, 4
test edi, edi
je 0x4714d4
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0x3e0]
push edx
push eax
mov ecx, ebp
call fcn.00482f80
mov ecx, dword [esi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, edi
call fcn.004478e0
jmp 0x4714d6
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489a20
mov byte [esi + 0x3ec], 1
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax + 0x1c]
push 0
push eax
push 0xd4
call fcn.005c0140
add esp, 0xc
test eax, eax
je case.0x470ebf.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049ed10
mov esi, eax
test esi, esi
je case.0x470ebf.1
mov ecx, esi
call fcn.0049cae0
push esi
lea ecx, [ebp + 0x20]
call fcn.0043ae30
push ebx
mov ecx, esi
call fcn.0049c9d0
mov ecx, ebp
call fcn.00482f80
push eax
mov ecx, esi
call fcn.0049ca60
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.0043ae30
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ed00
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x74]
mov edx, dword [eax + 0x70]
push ecx
push 0
push edx
lea ecx, [esi + 4]
call fcn.00491160
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x34], 0
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov dword [esi + 0x44], eax
mov edx, dword [ecx + 0xb4]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esi + 0xb4]
push eax
call fcn.0049c6b0
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x47163b
mov dword [esi + 0x64], esi
mov edx, dword [edi + 0x11c]
mov eax, dword [edi + 0x104]
push edx
mov edx, dword [edi + 0x108]
push eax
mov eax, dword [edi + 0xfc]
push edx
mov edx, dword [edi + 0xf8]
push eax
lea ecx, [esi + 0x5c]
push edx
call fcn.004018d0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.00401990
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x471625
test ebx, ebx
je 0x47161f
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x47161a
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jl 0x471625
and byte [esi + 0x28], 0xf7
jmp 0x47163b
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.00401990
or byte [esi + 0x28], 8
mov eax, dword [edi + 0x100]
test eax, eax
je 0x47168e
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
test ecx, ecx
je 0x47168e
push 1
push eax
call fcn.0040df10
test eax, eax
je 0x47168e
mov edx, dword [edi + 0x100]
push edx
lea ecx, [esi + 0xac]
call fcn.00523c40
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x471682
mov ecx, ebx
call fcn.00494e90
cmp eax, 6
jg 0x47168e
mov ecx, esi
call fcn.0049eed0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x4716a2
push ebp
call fcn.00470710
test byte [esi + 0x28], 0x20
jne 0x4716ba
mov ecx, ebp
call fcn.00487910
push 0
mov ecx, esi
push 0
call fcn.004a0230
and byte [esi + 0x28], 0xdf
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8