Function at 0x4708b0
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 0x47092b
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4708e5
mov ecx, dword [esi + 0x3e0]
cmp eax, dword [ecx + 0xba4]
je 0x470942
lea eax, [edi + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
test eax, eax
je 0x47092b
mov edx, dword [eax + 0x1c]
cmp edx, dword [ebx + 0xe8]
jge 0x470902
add eax, 0xc
jmp 0x4708e8
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebx + 0xe8]
jne 0x47092b
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x47092b
mov eax, dword [ecx + 0x210]
test eax, eax
jne 0x470926
call fcn.00494a20
cmp eax, 6
jge 0x470942
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x47094d
mov ecx, dword [esi + 0x3e0]
push 1
call fcn.004a7310
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.005bfc00
add esp, 0xc
test eax, eax
je 0x470978
mov ecx, eax
call fcn.00484140
mov ebp, eax
test ebp, ebp
jne 0x470984
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x20
ret 8
push 0
mov ecx, ebp
call fcn.0048ccd0
mov edx, dword [ebp + 0x54]
and edx, 0xfffffdff
lea eax, [ebp + 8]
mov dword [ebp + 0x54], edx
cmp dword [eax], edi
jne 0x4709a8
test edi, edi
jne 0x4709a8
mov dword [eax], edi
jmp 0x4709b2
push edi
push eax
call fcn.005bf350
add esp, 8
mov eax, dword [ebp + 0xc]
test eax, eax
lea esi, [ebp + 0xc]
jne 0x4709c4
mov dword [esi], 0
jmp 0x4709cf
push 0
push esi
call fcn.005bf350
add esp, 8
test edi, edi
je 0x470a28
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
je 0x470a07
mov edx, dword [eax + 8]
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x470a07
cmp eax, ecx
jne 0x470a07
cmp dword [esi], 0
jne 0x4709fa
mov dword [esi], 0
jmp 0x470a13
push 0
push esi
call fcn.005bf350
add esp, 8
jmp 0x470a13
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.0046eca0
mov ecx, dword [esp + 0x14]
push ebp
call fcn.00475970
or dword [edi + 0x54], 0x1000
mov ecx, edi
jmp 0x470a32
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xe0]
call fcn.0044a770
mov ecx, ebp
push eax
call fcn.0044c1d0
lea ecx, [ebp + 0x7c]
push ecx
call fcn.0043bfe0
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.00489e00
mov dword [ebp + 0x54], 0
test dword [ebx + 0xdc], 0x20000
mov edi, 0x400
je 0x470a95
mov dword [ebp + 0x54], edi
mov edx, dword [ebx + 0x118]
push edx
mov ecx, ebp
call fcn.004811d0
mov al, byte [ebx + 0xf0]
test al, al
mov eax, dword [ebp + 0x54]
je 0x470ab5
or eax, 4
jmp 0x470ab8
and eax, 0xfffffffb
mov dword [ebp + 0x54], eax
mov cl, byte [ebx + 0x10c]
test cl, cl
je 0x470acc
or eax, 0x80
jmp 0x470ad1
and eax, 0xffffff7f
or eax, 0x10
mov dword [ebp + 0x54], eax
mov ecx, dword [ebx + 0xe0]
test byte [ecx + 0x7f], 1
je 0x470aea
or eax, 0x200000
jmp 0x470aef
and eax, 0xffdfffff
mov dword [ebp + 0x54], eax
mov edx, dword [ebx + 0xe0]
cmp dword [edx + 0x78], 0x61
jne 0x470b05
or eax, 0x400000
jmp 0x470b0a
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.004895f0
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
lea eax, [ebp + 0x10]
jne 0x470b2b
mov dword [eax], esi
jmp 0x470b35
push esi
push eax
call fcn.005bf350
add esp, 8
push esi
mov ecx, ebp
call fcn.00489d70
push esi
mov ecx, ebp
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
call fcn.00489670
fld qword [0x5d76b0]
fstp qword [ebp + 0x58]
push esi
fld qword [0x5d87c0]
mov ecx, ebp
fstp qword [ebp + 0x68]
mov dword [ebp + 0x60], esi
fld qword [0x5d87c0]
mov dword [ebp + 0x64], esi
fstp qword [ebp + 0x70]
call fcn.00489bd0
mov ecx, dword [ebp + 0x18]
cmp dword [ecx + 0x5c], esi
je 0x470b92
lea edx, [esp + 0x20]
push edx
call fcn.004810c0
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
call fcn.004899a0
mov ecx, ebp
call fcn.0048cd60
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00489b50
push esi
mov ecx, ebp
call fcn.00489700
xor ecx, ecx
mov cl, byte [ebx + 0x10d]
push ecx
mov ecx, ebp
call fcn.00489920
test dword [ebx + 0xdc], edi
mov edi, dword [esp + 0x10]
je 0x470c4c
mov byte [edi + 0x3ec], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x20], esi
jne 0x470c1c
push 0x3c8
call fcn.0043f080
mov esi, eax
add esp, 4
test esi, esi
je 0x470c10
mov eax, dword [edi + 0x3e0]
push 0
push eax
mov ecx, ebp
call fcn.00482e20
mov ecx, dword [edi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, esi
call fcn.00447930
jmp 0x470c12
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489700
xor esi, esi
mov al, byte [ebx + 0x114]
test al, al
je 0x470c37
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x368]
or ecx, 2
jmp 0x470c46
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 0x470cec
cmp dword [ebx + 0x110], esi
je 0x470cec
mov byte [edi + 0x3ec], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x20], esi
jne 0x470cb7
push 0x3c8
call fcn.0043f080
mov esi, eax
add esp, 4
test esi, esi
je 0x470cad
mov eax, dword [edi + 0x3e0]
push 0
push eax
mov ecx, ebp
call fcn.00482e20
mov ecx, dword [edi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, esi
call fcn.00447930
jmp 0x470caf
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489700
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.00447880
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.00489c50
mov esi, dword [esp + 0x34]
test esi, esi
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x68]
mov dword [esp + 0x14], 0
je 0x470d5e
mov eax, dword [ebx + 0x24c]
test eax, eax
je 0x470d5e
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x470d2c
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl 0x470d5e
mov ecx, esi
test ecx, ecx
je 0x470d5e
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x470d5e
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x470d5e
mov edx, dword [eax + 0x24c]
test edx, edx
je 0x470d54
mov ecx, dword [ecx + 8]
jmp 0x470d33
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 0x470d7f
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x470e60
and ecx, 0x1f
cmp ecx, eax
jne 0x470e60
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x470da7
mov ecx, dword [eax + 0x78]
cmp ecx, 6
je 0x470db1
cmp ecx, 0x61
je 0x470db1
cmp dword [eax + 0x78], 2
je 0x470db1
xor esi, esi
jmp 0x470db6
mov esi, 1
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x470dc7
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl 0x470dde
test esi, esi
jne 0x470dd9
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x78], 9
jne 0x470dde
mov esi, 1
mov al, byte [ebx + 0x51e]
test al, al
jne 0x470dec
test esi, esi
je 0x470e60
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.0043a0e0
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.00439dc0
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xd0]
lea edx, [esp + 0x20]
push edx
call fcn.004b13b0
push eax
lea ecx, [ebp + 0x14]
call fcn.00423c90
mov edx, dword [ebp + 0x54]
mov eax, dword [esp + 0x20]
or edx, 0x80000
push eax
mov dword [ebp + 0x54], edx
call fcn.0043f0a0
add esp, 4
jmp 0x470e8b
mov ecx, edi
call fcn.00450960
test al, al
jne 0x470e87
mov ecx, dword [edi]
push ecx
mov ecx, dword [ebx + 0xd0]
lea edx, [esp + 0x20]
push edx
call fcn.0040e0d0
push eax
lea ecx, [ebp + 0x14]
call fcn.00423c90
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470ea1
add eax, 0x20
lea ecx, [ebp + 0x20]
push eax
call fcn.0046eca0
jmp 0x470ebe
mov ecx, dword [ebp + 0x20]
test ecx, ecx
lea eax, [ebp + 0x20]
jne 0x470eb3
mov dword [eax], 0
jmp 0x470ebe
push 0
push eax
call fcn.005bf350
add esp, 8
mov eax, dword [esp + 0x38]
test byte [eax + 0xdc], 0x40
je 0x470ed4
movzx eax, word [eax + 0xee]
jmp 0x470ed6
xor eax, eax
push eax
mov ecx, ebp
call fcn.004898a0
mov ecx, dword [ebp + 0x24]
test ecx, ecx
lea eax, [ebp + 0x24]
jne 0x470ef0
mov dword [eax], 0
jmp 0x470efb
push 0
push eax
call fcn.005bf350
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.00485d30
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0x78]
cmp eax, 0x61
ja case.0x470f2f.1
movzx eax, byte [eax + 0x471758]
jmp dword [eax*4 + 0x47173c]
mov ecx, dword [ecx + 0x68]
mov al, byte [ecx + 0x51e]
test al, al
je case.0x470f2f.1
mov ecx, esi
push ebp
call fcn.00470780
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
push 0xffff
mov ecx, ebp
call fcn.00489820
push 0x2c
call fcn.0043f080
mov edx, eax
add esp, 4
xor eax, eax
test edx, edx
je 0x470f84
mov ecx, 0xb
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
push eax
mov ecx, ebp
call fcn.004894b0
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 8]
call fcn.0046b9a0
push ebp
call fcn.004cb060
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax + 0x1c]
push 0
push eax
push 0xd4
call fcn.005bfc00
add esp, 0x10
test eax, eax
je case.0x470f2f.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049e900
mov esi, eax
test esi, esi
je case.0x470f2f.1
mov ecx, esi
call fcn.0049c6d0
push esi
lea ecx, [ebp + 0x20]
call fcn.00475970
push ebx
mov ecx, esi
call fcn.0049c5c0
mov ecx, ebp
call fcn.00482e20
push eax
mov ecx, esi
call fcn.0049c650
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esi + 0x30]
call fcn.00475970
mov edx, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], edx
call fcn.0046ecd0
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.004875c0
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0xb4]
mov edx, dword [ecx + 0x2c]
push edx
jmp 0x47119d
movzx edi, word [esi + 0x14c]
mov eax, dword [ebp + 0x1c]
cmp eax, edi
mov edx, 1
jne 0x47108a
mov edi, dword [ebp + 8]
cmp edi, dword [esi + 0x144]
jne 0x47108a
cmp ecx, dword [esi + 0x148]
jne 0x47108a
mov edi, dword [ebp + 4]
mov di, word [edi + 0x5a]
cmp di, word [esi + 0x14e]
jne 0x47108a
mov edx, dword [esi + 0x140]
mov dword [esi + 0x13c], ebp
jmp 0x4710c4
movzx edi, word [esi + 0x160]
cmp eax, edi
jne 0x4710c4
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x158]
jne 0x4710c4
cmp ecx, dword [esi + 0x15c]
jne 0x4710c4
mov ecx, dword [ebp + 4]
mov ax, word [ecx + 0x5a]
cmp ax, word [esi + 0x162]
jne 0x4710c4
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 0x4710df
push 0
push edx
push ebp
mov ecx, esi
call fcn.00472090
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x4710f0
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl case.0x470f2f.1
mov ecx, dword [esi + 0x3e0]
mov eax, dword [ecx + 0x1c]
push 0
push eax
push 0xd4
call fcn.005bfc00
add esp, 0xc
test eax, eax
je case.0x470f2f.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049e900
mov esi, eax
test esi, esi
je case.0x470f2f.1
mov ecx, esi
call fcn.0049c6d0
push esi
lea ecx, [ebp + 0x20]
call fcn.00475970
push ebx
mov ecx, esi
call fcn.0049c5c0
mov ecx, ebp
call fcn.00482e20
push eax
mov ecx, esi
call fcn.0049c650
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.00475970
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ecd0
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.004875c0
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xb4]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [esi + 0xb4]
call fcn.0049c260
cmp dword [edi + 0x11c], ebx
jne case.0x470f2f.1
mov ecx, edi
push ebp
call fcn.00470780
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
mov ecx, ebp
call fcn.0048a690
mov edx, dword [esi + 0x11c]
xor edi, edi
test edx, edx
je 0x471204
mov eax, ebp
lea ecx, [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
je 0x4711ed
mov eax, ecx
test eax, eax
jne 0x4711e0
xor ecx, ecx
test eax, eax
setne cl
mov edi, ecx
test edi, edi
je 0x471204
mov dword [esi + 0x120], 1
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x471215
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl 0x471304
mov edx, dword [esi + 0x3e0]
mov eax, dword [edx + 0x1c]
push 0
push eax
push 0xd4
call fcn.005bfc00
add esp, 0xc
test eax, eax
je case.0x470f2f.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049e900
mov esi, eax
test esi, esi
je case.0x470f2f.1
mov ecx, esi
call fcn.0049c6d0
push esi
lea ecx, [ebp + 0x20]
call fcn.00475970
push ebx
mov ecx, esi
call fcn.0049c5c0
mov ecx, ebp
call fcn.00482e20
push eax
mov ecx, esi
call fcn.0049c650
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.00475970
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ecd0
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.004875c0
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xb4]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esi + 0xb4]
push eax
call fcn.0049c260
cmp edi, ebx
jne 0x4712e0
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4712e0
call fcn.00431750
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne case.0x470f2f.1
push ebp
call fcn.00470780
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8
test edi, edi
jne case.0x470f2f.1
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x18]
test ecx, ecx
je case.0x470f2f.1
call fcn.00431750
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 0x4713e5
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebx + 0x1c4]
jl case.0x470f2f.1
mov edx, dword [esi + 0x3e0]
mov eax, dword [edx + 0x1c]
push edi
push eax
push 0x530
call fcn.005bfc00
add esp, 0xc
test eax, eax
je 0x471390
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049ebd0
mov esi, eax
jmp 0x471392
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.0049ccd0
mov dword [esi + 0x1d8], 1
mov edx, dword [ebx + 0x1c8]
mov dword [esi + 0x1c8], edx
mov ecx, esi
jmp 0x4713e9
mov esi, ebx
mov ecx, ebx
call fcn.0046cea0
test esi, esi
je case.0x470f2f.1
mov ecx, esi
call fcn.0049c6d0
push esi
lea ecx, [ebp + 0x20]
call fcn.00475970
mov eax, dword [esp + 0x34]
push eax
mov ecx, esi
call fcn.0049c5c0
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esi + 0x30]
call fcn.00475970
mov edx, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], edx
call fcn.0046ecd0
mov ecx, ebp
call fcn.00482e20
push eax
mov ecx, esi
call fcn.0049c650
mov eax, dword [ebx + 0x1c4]
mov ecx, dword [ebx + 4]
push eax
push edi
push ecx
lea ecx, [esi + 4]
call fcn.00490d80
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 0x4716fe
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.004018c0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.00401980
mov eax, dword [edi + 0xe0]
test byte [eax + 0x7f], 1
je 0x4714e7
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x4714d9
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl 0x4714e7
and byte [esi + 0x28], 0xf7
jmp 0x4716fe
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.00401980
or byte [esi + 0x28], 8
jmp 0x4716fe
test byte [ecx + 8], 0x1e
je 0x471555
push 0x3c8
call fcn.0043f080
mov edi, eax
add esp, 4
test edi, edi
je 0x471544
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0x3e0]
push edx
push eax
mov ecx, ebp
call fcn.00482e20
mov ecx, dword [esi + 0x3e4]
mov edx, dword [ecx + 0x78]
push eax
push edx
mov ecx, edi
call fcn.00447930
jmp 0x471546
xor eax, eax
push eax
mov ecx, ebp
call fcn.00489700
mov byte [esi + 0x3ec], 1
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax + 0x1c]
push 0
push eax
push 0xd4
call fcn.005bfc00
add esp, 0xc
test eax, eax
je case.0x470f2f.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
push ecx
mov ecx, eax
call fcn.0049e900
mov esi, eax
test esi, esi
je case.0x470f2f.1
mov ecx, esi
call fcn.0049c6d0
push esi
lea ecx, [ebp + 0x20]
call fcn.00475970
push ebx
mov ecx, esi
call fcn.0049c5c0
mov ecx, ebp
call fcn.00482e20
push eax
mov ecx, esi
call fcn.0049c650
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.00475970
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.0046ecd0
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.00490d80
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.0049c260
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x4716ab
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.004018c0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.00401980
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x471695
test ebx, ebx
je 0x47168f
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x47168a
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jl 0x471695
and byte [esi + 0x28], 0xf7
jmp 0x4716ab
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.00401980
or byte [esi + 0x28], 8
mov eax, dword [edi + 0x100]
test eax, eax
je 0x4716fe
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e0]
test ecx, ecx
je 0x4716fe
push 1
push eax
call fcn.0040df80
test eax, eax
je 0x4716fe
mov edx, dword [edi + 0x100]
push edx
lea ecx, [esi + 0xac]
call fcn.004877f0
mov eax, dword [ebx + 0x210]
test eax, eax
jne 0x4716f2
mov ecx, ebx
call fcn.00494a20
cmp eax, 6
jg 0x4716fe
mov ecx, esi
call fcn.0049eac0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x471712
push ebp
call fcn.00470780
test byte [esi + 0x28], 0x20
jne 0x47172a
mov ecx, ebp
call fcn.004875c0
push 0
mov ecx, esi
push 0
call fcn.0049fe40
and byte [esi + 0x28], 0xdf
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret 8