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

Disassembly:
push 0xffffffffffffffff
push 0x445e0e
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x44eea4]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44eea4]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x168]
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [0x44f874]
add eax, 1
and eax, reloc.DSOUND.dll_DirectSoundCreate
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
jns 0x41526e
dec eax
or eax, 0xfffffffe
inc eax
mov edi, 1
xor ebp, ebp
cmp dword [0x44d01c], edi
mov dword [0x44f874], eax
jne 0x4152f5
push 0x1f50
mov dword [0x44d01c], ebp
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov dword [esp + 0x160], ebp
je 0x4152b4
push str.LF2_CURSOR2
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x4152b6
xor eax, eax
push 0x420
mov dword [esp + 0x164], 0xffffffff
mov dword [0x44f824], eax
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
add esp, 4
cmp edi, ebp
je 0x4152e8
mov ecx, edi
call fcn.004061e0
mov dword [edi + 0x368], esi
jmp 0x4152ea
xor edi, edi
mov dword [0x44f870], edi
mov edi, 1
push 0x22
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415329
mov eax, dword [0x44f86c]
add eax, edi
cmp eax, 0x190
mov dword [0x44f86c], eax
jl 0x41531d
xor eax, eax
mov dword [0x44f86c], eax
push eax
mov ecx, esi
call fcn.0040d940
test eax, eax
je 0x415303
push 0x21
call fcn.004151d0
add esp, 4
test eax, eax
je 0x41535b
sub dword [0x44f86c], edi
jns 0x415349
mov dword [0x44f86c], 0x18f
mov ecx, dword [0x44f86c]
push ecx
mov ecx, esi
call fcn.0040d940
test eax, eax
je 0x415337
push 0x41
call fcn.004151d0
add esp, 4
test eax, eax
je 0x41537f
mov eax, dword [0x44f868]
add eax, 1
cdq
mov ecx, 3
idiv ecx
mov dword [0x44f868], edx
push 0x53
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415395
push ebx
mov ecx, esi
call fcn.0040d0a0
push 0x4d
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4153af
sub edi, dword [0x44f864]
mov dword [0x44f864], edi
push 0x4e
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4153d3
mov eax, dword [0x44f860]
add eax, 1
cdq
mov ecx, 5
idiv ecx
mov dword [0x44f860], edx
push 0xd
call fcn.004151d0
mov ecx, dword [0x44f870]
add esp, 4
test eax, eax
je 0x4153f6
mov edx, dword [0x44f86c]
mov dword [ecx + 0x70], edx
mov dword [ecx + 0x88], ebp
push ebp
push ebp
call fcn.0040d960
mov eax, dword [0x44f860]
cmp eax, ebp
mov edi, dword [0x44f86c]
jne 0x4154ad
push 0x26
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415435
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7f8], 1
lea eax, [eax + esi + 0x7f8]
push 0x28
call fcn.004151d0
add esp, 4
test eax, eax
je 0x41545a
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x7f8], 0xffffffff
lea eax, [ecx + esi + 0x7f8]
push 0x25
call fcn.004151d0
add esp, 4
test eax, eax
je 0x41547f
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x7f4], 1
lea eax, [edx + esi + 0x7f4]
push 0x27
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158a3
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7f4], 0xffffffff
lea eax, [eax + esi + 0x7f4]
jmp 0x4158a3
mov ebx, 1
cmp eax, ebx
jne 0x4155e8
push 0x43
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4154ea
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x82c]
lea ecx, [ecx + esi + 0x82c]
add eax, ebx
cdq
mov ebp, 3
idiv ebp
mov dword [ecx], edx
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x41550b
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x834], 0xffffffff
lea eax, [eax + esi + 0x834]
cmp byte [0x4553a0], dl
jne 0x415529
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x834], ebx
lea eax, [ecx + esi + 0x834]
cmp byte [0x45539d], dl
jne 0x415548
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x830], 0xffffffff
lea eax, [eax + esi + 0x830]
cmp byte [0x45539f], dl
jne 0x415566
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x830], ebx
lea eax, [ecx + esi + 0x830]
push 0xdb
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4155a1
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x840], 0xffffffff
cmp dword [edx + esi + 0x840], 0x82
lea eax, [edx + esi + 0x840]
jge 0x4155a1
mov dword [eax], 0x90
push 0xdd
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158a3
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x840], ebx
cmp dword [eax + esi + 0x840], 0x90
lea eax, [eax + esi + 0x840]
jle 0x4158a3
mov dword [eax], 0x82
jmp 0x4158a3
cmp eax, 2
jne 0x415740
push 0x57
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415626
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x87c]
lea ecx, [ecx + esi + 0x87c]
add eax, ebx
cdq
mov ebx, 3
idiv ebx
mov ebx, 1
mov dword [ecx], edx
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x880], ebp
lea ecx, [edx + esi]
jne 0x41566a
cmp dword [ecx + 0x884], ebp
jne 0x41566a
cmp edi, ebp
jle 0x41566a
mov eax, dword [ecx + 0x708]
mov dword [ecx + 0x880], eax
mov edx, dword [ecx + 0x70c]
mov dword [ecx + 0x884], edx
mov eax, dword [ecx + 0x710]
mov dword [ecx + 0x888], eax
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x41567b
add dword [ecx + 0x884], 0xffffffff
cmp byte [0x4553a0], dl
jne 0x415689
add dword [ecx + 0x884], ebx
cmp byte [0x45539d], dl
jne 0x415698
add dword [ecx + 0x880], 0xffffffff
cmp byte [0x45539f], dl
jne 0x4156a6
add dword [ecx + 0x880], ebx
push 0xdb
call fcn.004151d0
mov edx, dword [0x44f868]
add esp, 4
test eax, eax
mov ebx, 0x23
mov ebp, 0x14
je 0x4156f1
add dword [ecx + 0x888], 0xffffffff
cmp edx, 1
jne 0x4156df
mov dword [ecx + 0x888], 0xa
jmp 0x4156f1
test edx, edx
jne 0x4156f1
cmp dword [ecx + 0x888], ebp
jge 0x4156f1
mov dword [ecx + 0x888], ebx
push 0xdd
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158a3
add dword [ecx + 0x888], 1
cmp edx, 1
jne 0x415721
mov dword [ecx + 0x888], 0xa
jmp 0x4158a3
test edx, edx
jne 0x4158a3
cmp dword [ecx + 0x888], ebx
jle 0x4158a3
mov dword [ecx + 0x888], ebp
jmp 0x4158a3
cmp eax, 3
jne 0x4157ce
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x41576a
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x804], 0xffffffff
lea eax, [ecx + esi + 0x804]
cmp byte [0x4553a0], dl
jne 0x415788
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x804], ebx
lea eax, [eax + esi + 0x804]
cmp byte [0x45539d], dl
jne 0x4157a7
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x800], 0xffffffff
lea eax, [ecx + esi + 0x800]
cmp byte [0x45539f], dl
jne 0x4158a3
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x800], ebx
lea eax, [edx + esi + 0x800]
jmp 0x4158a3
cmp eax, 4
jne 0x4158a3
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x4157f8
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x828], 0xffffffff
lea eax, [eax + esi + 0x828]
cmp byte [0x4553a0], dl
jne 0x415816
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x828], ebx
lea eax, [ecx + esi + 0x828]
cmp byte [0x45539d], dl
jne 0x415835
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x824], 0xffffffff
lea eax, [eax + esi + 0x824]
cmp byte [0x45539f], dl
jne 0x415853
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x824], ebx
lea eax, [ecx + esi + 0x824]
push 0x42
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158a3
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x824], ebp
lea eax, [edx + esi]
je 0x41587d
mov dword [eax + 0x824], ebp
jmp 0x4158a3
cmp edi, ebp
mov dword [eax + 0x824], ebx
jle 0x4158a3
mov ecx, dword [eax + 0x6ac]
cmp ecx, ebp
jle 0x4158a3
mov dword [eax + 0x824], ecx
mov ecx, dword [eax + 0x6b0]
mov dword [eax + 0x828], ecx
push 0x6b
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158c8
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x7b0], 1
lea eax, [edx + esi + 0x7b0]
push 0x6d
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4158f5
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7b0], 0xffffffff
lea eax, [eax + esi + 0x7b0]
jne 0x4158f5
xor ebp, ebp
mov dword [eax], ebp
jmp 0x4158f7
xor ebp, ebp
mov eax, dword [0x44f864]
cmp eax, ebp
jne 0x415b0d
push 0x2d
call fcn.004151d0
add esp, 4
test eax, eax
je 0x4159b1
mov ecx, edi
imul ecx, ecx, 0x178
lea ebx, [ecx + esi]
mov eax, 1
add dword [ebx + 0x8cc], eax
cmp dword [ebx + 0x8cc], eax
jne 0x415948
push 0x190
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
mov dword [ebx + 0x8d4], eax
mov eax, dword [ebx + 0x8cc]
xor ecx, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x8d4]
shl edx, 4
lea eax, [edx + eax - 0x50]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov ecx, 0xa
mov dword [eax + 8], ebp
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov ebx, dword [ebx + 0x8cc]
sub ebx, 1
mov dword [0x44f85c], ebx
jmp 0x4159b7
mov ebx, dword [0x44f85c]
push 0x2e
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415ac5
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x8cc]
add ecx, esi
cmp eax, ebp
jle 0x415ac5
lea edx, [eax - 1]
cmp ebx, edx
jge 0x415ab3
cmp ebx, eax
mov dword [esp + 0x14], ebx
jge 0x415abc
lea edx, [ebx + ebx*4]
shl edx, 4
nop
mov eax, dword [ecx + 0x8d4]
add eax, edx
mov ebp, dword [eax + 0x50]
mov dword [eax], ebp
mov ebp, dword [eax + 0x54]
mov dword [eax + 4], ebp
mov ebp, dword [eax + 0x58]
mov dword [eax + 8], ebp
mov ebp, dword [eax + 0x5c]
mov dword [eax + 0xc], ebp
mov ebp, dword [eax + 0x60]
mov dword [eax + 0x10], ebp
mov ebp, dword [eax + 0x64]
mov dword [eax + 0x14], ebp
mov ebp, dword [eax + 0x68]
mov dword [eax + 0x18], ebp
mov ebp, dword [eax + 0x6c]
mov dword [eax + 0x1c], ebp
mov ebp, dword [eax + 0x70]
mov dword [eax + 0x20], ebp
mov ebp, dword [eax + 0x74]
mov dword [eax + 0x24], ebp
mov ebp, dword [eax + 0x78]
mov dword [eax + 0x28], ebp
mov ebp, dword [eax + 0x7c]
mov dword [eax + 0x2c], ebp
mov ebp, dword [eax + 0x80]
mov dword [eax + 0x30], ebp
mov ebp, dword [eax + 0x84]
mov dword [eax + 0x34], ebp
mov ebp, dword [eax + 0x88]
mov dword [eax + 0x38], ebp
mov ebp, dword [eax + 0x8c]
mov dword [eax + 0x3c], ebp
mov ebp, dword [eax + 0x90]
mov dword [eax + 0x40], ebp
mov ebp, dword [eax + 0x94]
mov dword [eax + 0x44], ebp
mov ebp, dword [eax + 0x98]
mov dword [eax + 0x48], ebp
mov ebp, dword [eax + 0x9c]
mov dword [eax + 0x4c], ebp
mov eax, dword [esp + 0x14]
add eax, 1
add edx, 0x50
cmp eax, dword [ecx + 0x8cc]
mov dword [esp + 0x14], eax
jl 0x415a00
jmp 0x415abc
sub ebx, 1
mov dword [0x44f85c], ebx
add dword [ecx + 0x8cc], 0xffffffff
xor ebp, ebp
push 0x4b
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415ca0
mov eax, edi
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x8cc], ebp
jle 0x415ca0
lea ebx, [ebx + ebx*4]
shl ebx, 4
add ebx, dword [eax + 0x8d4]
mov ecx, 7
mov eax, dword [ebx]
add eax, 1
cdq
idiv ecx
mov dword [ebx], edx
jmp 0x415ca0
cmp eax, 1
jne 0x415ca0
push 0x2d
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415b9e
lea edx, [edi + 6]
imul edx, edx, 0x178
add dword [edx + esi], 1
cmp dword [edx + esi], 1
lea ebx, [edx + esi]
jne 0x415b57
push 0xc8
call dword [sym.imp.MSVCR80.dll_malloc]
mov ecx, edi
add esp, 4
imul ecx, ecx, 0x178
mov dword [ecx + esi + 0x8d8], eax
mov eax, dword [ebx]
mov edx, edi
imul edx, edx, 0x178
mov ecx, dword [edx + esi + 0x8d8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8 - 0x28]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ebp
mov dword [eax + 0x20], ebp
mov dword [eax + 0x24], ebp
mov ecx, 0xa
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ebp
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov ecx, dword [ebx]
sub ecx, 1
mov dword [0x44f858], ecx
jmp 0x415ba4
mov ecx, dword [0x44f858]
push 0x2e
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415c5b
lea edx, [edi + 6]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [eax]
cmp edx, ebp
mov dword [esp + 0x14], eax
jle 0x415c5b
lea ebx, [edx - 1]
cmp ecx, ebx
jge 0x415c4d
cmp ecx, edx
mov ebx, ecx
jge 0x415c56
mov eax, edi
imul eax, eax, 0x178
lea edx, [eax + esi + 0x8d8]
mov dword [esp + 0x18], edx
lea edx, [ecx + ecx*4]
add edx, edx
add edx, edx
add edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [eax + edx + 0x28]
add eax, edx
mov dword [eax], ebp
mov ebp, dword [eax + 0x2c]
mov dword [eax + 4], ebp
mov ebp, dword [eax + 0x30]
mov dword [eax + 8], ebp
mov ebp, dword [eax + 0x34]
mov dword [eax + 0xc], ebp
mov ebp, dword [eax + 0x38]
mov dword [eax + 0x10], ebp
mov ebp, dword [eax + 0x3c]
mov dword [eax + 0x14], ebp
mov ebp, dword [eax + 0x40]
mov dword [eax + 0x18], ebp
mov ebp, dword [eax + 0x44]
mov dword [eax + 0x1c], ebp
mov ebp, dword [eax + 0x48]
mov dword [eax + 0x20], ebp
mov ebp, dword [eax + 0x4c]
mov dword [eax + 0x24], ebp
mov eax, dword [esp + 0x14]
add ebx, 1
add edx, 0x28
cmp ebx, dword [eax]
jl 0x415bf9
jmp 0x415c56
sub ecx, 1
mov dword [0x44f858], ecx
add dword [eax], 0xffffffff
xor ebp, ebp
push 0x4b
call fcn.004151d0
add esp, 4
test eax, eax
je 0x415ca0
lea edx, [edi + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], ebp
jle 0x415ca0
mov eax, edi
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8d8]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
add ecx, 1
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x415c9e
dec ecx
or ecx, 0xfffffffc
inc ecx
mov dword [eax], ecx
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x7f4], ebp
lea ebx, [edx + esi]
jne 0x415cfe
cmp dword [ebx + 0x7f8], ebp
jne 0x415cfe
push edi
mov ecx, esi
call fcn.0040bf40
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [0x44f86c]
mov edx, eax
imul edx, edx, 0x178
sar ecx, 1
mov dword [edx + esi + 0x7f4], ecx
mov ecx, eax
imul ecx, ecx, 0x178
lea ebx, [ecx + esi]
push eax
mov ecx, esi
call fcn.0040bfc0
mov edi, dword [0x44f86c]
mov dword [ebx + 0x7f8], eax
mov edx, dword [0x455608]
push edx
push ebp
push ebp
push ebp
mov eax, 0xc8
sub eax, dword [ebx + 0x7f8]
push edi
mov ecx, 0xc8
sub ecx, dword [ebx + 0x7f4]
push eax
push ecx
mov ecx, esi
call fcn.0040be80
mov eax, dword [0x44f86c]
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
mov edx, eax
imul edx, edx, 0x178
lea ecx, [edx + esi + 0x900]
push ecx
push eax
lea edx, [esp + 0x30]
push str._d____s
push edx
call edi
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
mov ecx, 0xa6
sub ecx, dword [eax + 0x7f8]
mov edx, 0xc8
sub edx, dword [eax + 0x7f4]
push ecx
mov ecx, dword [0x455608]
push edx
push 0xffffff
push ebp
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.00401290
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
mov ecx, dword [edx + esi + 0x7b4]
lea eax, [edx + esi]
mov edx, dword [eax + 0x7b0]
push ecx
push edx
lea eax, [esp + 0x58]
push str.wait:__d___next:__d
push eax
call edi
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
lea eax, [ecx + esi]
mov edx, 0xb7
sub edx, dword [eax + 0x7f8]
mov ecx, 0xc8
sub ecx, dword [eax + 0x7f4]
mov eax, dword [0x455608]
push edx
push ecx
push 0xffffff
push ebp
lea edx, [esp + 0x70]
push edx
push eax
call fcn.00401290
mov ecx, dword [0x44f870]
mov eax, dword [ecx + 0x70]
add esp, 0x50
mov edx, eax
imul edx, edx, 0x178
lea ecx, [edx + esi]
mov edx, dword [0x455608]
push edx
push ebp
push ebp
push ebp
push eax
mov eax, 0xc8
sub eax, dword [ecx + 0x7f8]
mov edx, 0x190
sub edx, dword [ecx + 0x7f4]
push eax
push edx
mov ecx, esi
call fcn.0040be80
mov ebx, dword [0x44f86c]
mov eax, ebx
imul eax, eax, 0x178
mov edi, dword [eax + esi + 0x8cc]
cmp edi, ebp
lea ecx, [eax + esi]
jle 0x415f66
cmp dword [0x44f864], ebp
jne 0x415f66
cmp dword [0x4527e4], 1
jne 0x415e82
cmp dword [0x44f854], ebp
jne 0x415e82
mov eax, dword [0x44f85c]
add eax, 1
cdq
idiv edi
mov dword [0x44f85c], edx
cmp dword [0x457580], 1
jne 0x415f50
mov eax, dword [0x44f850]
cmp eax, ebp
jne 0x415eb3
mov edx, dword [0x4546f0]
mov eax, dword [0x453cdc]
mov dword [0x44f84c], edx
mov dword [0x44f848], eax
jmp 0x415f50
cmp eax, 1
jne 0x415f50
mov eax, dword [0x4546f0]
mov edx, dword [0x44f84c]
cmp edx, eax
mov edi, dword [0x453cdc]
mov dword [0x44f844], eax
mov dword [0x44f840], edi
jle 0x415ee6
sub edx, eax
mov ebp, eax
mov dword [esp + 0x14], edx
jmp 0x415eee
sub eax, edx
mov ebp, edx
mov dword [esp + 0x14], eax
mov eax, dword [0x44f848]
cmp eax, edi
jle 0x415f01
sub eax, edi
mov edx, edi
mov dword [esp + 0x18], eax
jmp 0x415f09
sub edi, eax
mov edx, eax
mov dword [esp + 0x18], edi
mov eax, dword [0x44f85c]
mov edi, dword [ecx + 0x7f4]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [ecx + 0x8d4]
lea edi, [edi + ebp - 0xc8]
mov dword [eax + 4], edi
mov edi, dword [ecx + 0x7f8]
lea edx, [edi + edx - 0xc8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x14]
add edx, 1
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x18]
add edx, 1
mov dword [eax + 0x10], edx
xor ebp, ebp
mov eax, dword [0x457580]
mov edx, dword [0x4527e4]
mov dword [0x44f850], eax
mov dword [0x44f854], edx
lea eax, [ebx + 6]
imul eax, eax, 0x178
mov edi, dword [eax + esi]
cmp edi, ebp
jle 0x416095
mov eax, 1
cmp dword [0x44f864], eax
jne 0x416095
cmp dword [0x4527e4], eax
jne 0x415fac
cmp dword [0x44f83c], ebp
jne 0x415fac
mov eax, dword [0x44f858]
add eax, 1
cdq
idiv edi
mov dword [0x44f858], edx
cmp dword [0x457580], 1
jne 0x41607a
mov eax, dword [0x44f838]
cmp eax, ebp
jne 0x415fdf
mov ecx, dword [0x4546f0]
mov edx, dword [0x453cdc]
mov dword [0x44f834], ecx
mov dword [0x44f830], edx
jmp 0x41607a
cmp eax, 1
jne 0x41607a
mov eax, dword [0x4546f0]
mov edx, dword [0x44f834]
cmp edx, eax
mov edi, dword [0x453cdc]
mov dword [0x44f82c], eax
mov dword [0x44f828], edi
jle 0x416012
sub edx, eax
mov ebp, eax
mov dword [esp + 0x18], edx
jmp 0x41601a
sub eax, edx
mov ebp, edx
mov dword [esp + 0x18], eax
mov eax, dword [0x44f830]
cmp eax, edi
jle 0x41602d
sub eax, edi
mov edx, edi
mov dword [esp + 0x14], eax
jmp 0x416035
sub edi, eax
mov edx, eax
mov dword [esp + 0x14], edi
mov edi, dword [ecx + 0x8d8]
mov eax, dword [0x44f858]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ecx + 0x7f4]
lea edi, [edi + ebp - 0xc8]
mov dword [eax + 4], edi
mov ecx, dword [ecx + 0x7f8]
lea edx, [ecx + edx - 0xc8]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x14]
add ecx, 1
add edx, 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov eax, dword [0x457580]
mov ecx, dword [0x4527e4]
mov dword [0x44f838], eax
mov dword [0x44f83c], ecx
jmp 0x416283
cmp dword [0x44f864], ebp
jne 0x416283
mov eax, dword [0x44f860]
cmp eax, 2
je 0x416379
cmp eax, 4
je 0x416283
cmp edi, ebp
mov dword [esp + 0x14], ebp
jle 0x4161a1
xor ebp, ebp
jmp 0x4160d0
mov edx, ebx
imul edx, edx, 0x178
mov edi, dword [edx + esi + 0x8d8]
lea eax, [edx + esi]
add edi, ebp
cmp dword [0x44f874], 0
jle 0x41617f
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xff
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416179
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x90
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 6]
imul ecx, ecx, 0x178
add eax, 1
add ebp, 0x28
cmp eax, dword [ecx + esi]
mov dword [esp + 0x14], eax
jl 0x4160d0
xor ebp, ebp
lea edx, [ebx + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], ebp
jle 0x416283
cmp dword [0x44f864], 1
jne 0x416283
cmp dword [0x44f860], 2
je 0x416379
mov ecx, dword [0x44f858]
mov eax, ebx
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8d8]
add eax, esi
cmp dword [0x44f874], ebp
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
jle 0x416283
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xffffff
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], ebp
jle 0x41627d
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc8
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [0x44f860]
cmp eax, 2
je 0x416379
cmp eax, 4
je 0x416379
mov eax, ebx
imul eax, eax, 0x178
xor ebp, ebp
add eax, esi
cmp dword [eax + 0x8cc], ebp
jle 0x416379
mov dword [esp + 0x14], ebp
mov edi, dword [eax + 0x8d4]
add edi, dword [esp + 0x14]
cmp dword [0x44f874], 0
jle 0x41635b
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xff0000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416355
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x900000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov ebx, dword [0x44f86c]
add dword [esp + 0x14], 0x50
mov eax, ebx
imul eax, eax, 0x178
add ebp, 1
add eax, esi
cmp ebp, dword [eax + 0x8cc]
jl 0x4162b6
mov ecx, ebx
imul ecx, ecx, 0x178
cmp dword [ecx + esi + 0x8cc], 0
lea eax, [ecx + esi]
jle 0x416464
cmp dword [0x44f864], 0
jne 0x416464
mov ecx, dword [0x44f860]
cmp ecx, 2
je 0x41664e
cmp ecx, 4
je 0x41664e
mov edi, dword [0x44f85c]
lea edi, [edi + edi*4]
shl edi, 4
add edi, dword [eax + 0x8d4]
cmp dword [0x44f874], 0
jle 0x41664e
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0xffffff
push edx
mov edx, dword [edi + 8]
sub edx, dword [eax + 0x7f8]
push ecx
mov ecx, dword [edi + 4]
sub ecx, dword [eax + 0x7f4]
add edx, 0xc8
push edx
add ecx, 0xc8
push ecx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x41645e
mov edx, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc80000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov ebx, dword [0x44f86c]
cmp dword [0x44f864], 1
jne 0x41664e
mov eax, dword [0x44f860]
cmp eax, 2
je 0x41664e
cmp eax, 4
je 0x41664e
lea eax, [ebx + 6]
imul eax, eax, 0x178
cmp dword [eax + esi], 0
mov dword [esp + 0x14], 0
jle 0x41657f
xor ebp, ebp
jmp 0x4164b0
mov ecx, ebx
imul ecx, ecx, 0x178
mov edi, dword [ecx + esi + 0x8d8]
lea eax, [ecx + esi]
add edi, ebp
cmp dword [0x44f874], 0
jle 0x41655f
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0xff
push edx
mov edx, dword [edi + 8]
sub edx, dword [eax + 0x7f8]
push ecx
mov ecx, dword [edi + 4]
sub ecx, dword [eax + 0x7f4]
add edx, 0xc8
push edx
add ecx, 0xc8
push ecx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416559
mov edx, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x90
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 6]
imul ecx, ecx, 0x178
add eax, 1
add ebp, 0x28
cmp eax, dword [ecx + esi]
mov dword [esp + 0x14], eax
jl 0x4164b0
lea edx, [ebx + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], 0
jle 0x41664e
cmp dword [0x44f864], 1
jne 0x41664e
mov eax, dword [0x44f858]
imul ebx, ebx, 0x178
mov ecx, dword [ebx + esi + 0x8d8]
add ebx, esi
cmp dword [0x44f874], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jle 0x41664e
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 8]
sub ecx, dword [ebx + 0x7f8]
mov eax, dword [edi + 0xc]
push 0xffffff
push edx
mov edx, dword [edi + 4]
sub edx, dword [ebx + 0x7f4]
push eax
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x41664e
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc8
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00437040
add esp, 0x14
mov eax, dword [0x455608]
mov ecx, dword [0x453cdc]
mov edx, dword [0x4546f0]
push eax
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xfffffff6
push ecx
mov ecx, dword [0x44f824]
add edx, 0xfffffff6
push edx
call fcn.0043f100
cmp dword [0x44f864], 0
mov eax, dword [0x44f86c]
jne 0x4166c8
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8cc]
test edx, edx
lea ecx, [eax + esi]
jle 0x41670a
mov eax, dword [0x44f85c]
mov ecx, dword [ecx + 0x8d4]
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [ecx + eax]
push eax
push edx
lea ecx, [esp + 0x30]
push str.itr_mode___no:__d___kind:__d
push ecx
call edi
add esp, 0x10
jmp 0x416710
lea edx, [eax + 6]
imul edx, edx, 0x178
mov edx, dword [edx + esi]
test edx, edx
jle 0x41670a
mov ecx, dword [0x44f858]
imul eax, eax, 0x178
mov eax, dword [eax + esi + 0x8d8]
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*8]
push ecx
push edx
lea edx, [esp + 0x30]
push str.bdy_mode___no:__d___kind:__d
push edx
call edi
add esp, 0x10
jmp 0x416710
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
mov ecx, dword [0x455608]
push 0x32
push 0
push 0xffffff
push 0
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.00401290
add esp, 0x18
cmp dword [0x44f860], 1
jne 0x416776
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
mov eax, dword [edx + esi + 0x82c]
push eax
lea ecx, [esp + 0x2c]
push str.cpoint:__d
push ecx
call edi
mov eax, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea edx, [esp + 0x44]
push edx
push eax
call fcn.00401290
add esp, 0x24
mov ebp, 2
cmp dword [0x44f860], ebp
jne 0x4167cb
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
mov edx, dword [ecx + esi + 0x888]
lea eax, [ecx + esi]
mov eax, dword [eax + 0x87c]
push edx
push eax
lea ecx, [esp + 0x30]
push str.wpoint:__d___d
push ecx
call edi
mov eax, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea edx, [esp + 0x48]
push edx
push eax
call fcn.00401290
add esp, 0x28
cmp dword [0x44f860], 3
jne 0x416813
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
mov edx, dword [ecx + esi + 0x7fc]
push edx
lea eax, [esp + 0x2c]
push str.opoint:__d
push eax
call edi
mov edx, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.00401290
add esp, 0x24
cmp dword [0x44f860], 4
jne 0x416864
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x828]
mov edx, dword [eax + esi + 0x824]
add eax, esi
push ecx
push edx
lea eax, [esp + 0x30]
push str.bpoint:__d___d
push eax
call edi
mov edx, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.00401290
add esp, 0x28
push 0xa514
push 1
push 0xd
push 0xc8
push 0xc2
call fcn.00437040
push 0xa514
push 0xd
push 1
push 0xc2
push 0xc8
call fcn.00437040
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
add esp, 0x28
cmp dword [eax + 0x7fc], 0
je 0x41692d
mov ecx, dword [eax + 0x804]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x800]
sub edx, dword [eax + 0x7f4]
push 0xf800
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00437040
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x804]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x800]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0xf800
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x28
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x82c], 0
lea ebx, [eax + 0x82c]
je 0x416adf
mov ecx, dword [eax + 0x834]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x830]
sub edx, dword [eax + 0x7f4]
push 0x7e0
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00437040
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x834]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x830]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0x7e0
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00437040
mov eax, dword [ebx + 0x14]
imul eax, eax, 0x178
add esp, 0x28
cmp dword [eax + esi + 0x82c], ebp
jne 0x416adf
mov ecx, dword [ebx + 0x10]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
cmp ecx, 1
lea eax, [edx + esi]
mov ecx, esi
jne 0x416a77
mov edi, dword [eax + 0x830]
mov ebp, dword [eax + 0x834]
sub edi, dword [eax + 0x7f4]
sub ebp, dword [eax + 0x7f8]
mov eax, dword [ebx + 0x14]
push eax
add edi, 0xc8
add ebp, 0xc8
call fcn.0040bf40
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x14]
imul ecx, ecx, 0x178
sub edi, dword [ecx + esi + 0x830]
push edx
mov ecx, esi
sub edi, eax
call fcn.0040bf40
mov ecx, dword [0x455608]
mov ebx, dword [ebx + 0x14]
push ecx
push 0
push 0
push 1
push ebx
imul ebx, ebx, 0x178
add eax, edi
sub ebp, dword [ebx + esi + 0x834]
push ebp
push eax
jmp 0x416ad8
mov ebp, dword [eax + 0x830]
mov edi, dword [eax + 0x834]
sub ebp, dword [eax + 0x7f4]
sub edi, dword [eax + 0x7f8]
mov eax, dword [ebx + 0x14]
push eax
add ebp, 0xc8
add edi, 0xc8
call fcn.0040bf40
mov edx, dword [0x455608]
mov ecx, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x14]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + esi + 0x830]
push edx
push 0
push 1
push 1
push ebx
imul ebx, ebx, 0x178
add ecx, ebp
sub ecx, eax
sub edi, dword [ebx + esi + 0x834]
push edi
push ecx
mov ecx, esi
call fcn.0040be80
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
mov ecx, dword [eax + 0x87c]
test ecx, ecx
lea edi, [eax + 0x87c]
je 0x416c03
cmp ecx, 2
jne 0x416b7b
mov ecx, dword [eax + 0x884]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x880]
sub edx, dword [eax + 0x7f4]
push 0x1f
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00437040
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x884]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x880]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0x1f
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00437040
add esp, 0x28
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x87c], 1
jne 0x416c03
mov ecx, dword [0x44f868]
test ecx, ecx
jne 0x416ba1
mov edx, dword [esp + 0x1c]
jmp 0x416bae
cmp ecx, 1
mov edx, dword [esp + 0x24]
je 0x416bae
mov edx, dword [esp + 0x20]
mov edi, dword [edi + 0xc]
mov ebx, dword [0x455608]
mov ecx, edi
push ebx
imul ecx, ecx, 0x178
push 0
push 0
push 1
push edi
mov edi, dword [eax + 0x884]
sub edi, dword [ecx + edx + 0x884]
add ecx, edx
sub edi, dword [eax + 0x7f8]
add edi, 0xc8
push edi
mov edi, dword [eax + 0x880]
sub edi, dword [ecx + 0x880]
mov ecx, edx
sub edi, dword [eax + 0x7f4]
add edi, 0xc8
push edi
call fcn.0040be80
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add esi, eax
mov eax, dword [esi + 0x824]
test eax, eax
je 0x416c4a
mov edx, dword [esi + 0x828]
sub edx, dword [esi + 0x7f8]
sub eax, dword [esi + 0x7f4]
push 0xf800
push 3
push 1
add edx, 0xc8
push edx
add eax, 0xc8
push eax
call fcn.00437040
add esp, 0x14
mov eax, dword [0x458348]
push eax
call fcn.0043ea40
add esp, 4
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.004451a2
add esp, 0x150
ret 0x18