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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x30
push 0
push 0
dec ecx
jne 0x4ff955
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x502041
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ecx
call fcn.004f7cb0
mov ebx, eax
test ebx, ebx
je 0x501fdb
mov eax, dword [0x53c7a0]
mov dword [ebx + 0x18], eax
mov eax, dword [0x53c7a4]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, 8
jge 0x4ff9ad
mov eax, 0x20
jmp 0x4ff9cd
mov edi, dword [ebx + 0x2c]
mov esi, dword [edi + 4]
mov eax, edi
call fcn.00413ff8
push eax
mov eax, dword [esi + 4]
pop edx
sub eax, edx
cmp eax, 0x1000
jle 0x4ff9cd
mov eax, 0x1000
lea edx, [ebx + 0x79]
mov ecx, dword [ebx + 0x28]
xchg ecx, eax
call fcn.004ab23c
mov edi, eax
test edi, edi
jle 0x501fdb
lea esi, [ebx + 0x79]
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
test eax, eax
jg 0x4ff9fa
cmp dword [esi], 0x13572469
jne 0x4ff987
lea edx, [ebx + 0x79]
mov eax, dword [ebx + 0x2c]
mov ecx, edi
mov esi, dword [eax]
call dword [esi + 8]
mov edi, dword [ebx + 0x2c]
mov esi, dword [edi + 4]
mov eax, edi
call fcn.00413ff8
test eax, eax
jle 0x501fdb
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, dword [esi + 4]
jl 0x501fca
call fcn.004faed8
xor edx, edx
push ebp
push 0x501fc3
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [esi + 4]
mov eax, esi
call fcn.00465fcc
test al, al
jne 0x501f8d
cmp byte [esi + 0xd], 0xd
jne 0x4ffa7c
mov ecx, dword [esi + 0x10]
lea eax, [ebx + 0x40]
mov edx, 0xa
call fcn.00467930
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.00414008
call fcn.004036e4
jmp 0x501fdb
mov dl, 1
mov eax, dword [0x46576c]
call fcn.00402e7c
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x501f86
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, dword [ebx + 0x2c]
mov eax, esi
call fcn.00413ff8
mov ecx, eax
mov edx, dword [esi + 4]
mov eax, dword [ebp - 0xc]
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [ebx + 0x2c]
call fcn.00414014
cmp eax, 0x4000
jle 0x4ffacb
mov eax, dword [ebx + 0x2c]
mov edx, 0x4000
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.00414008
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 4]
cmp byte [esi + 0xe], 0
je 0x4ffaeb
mov edx, dword [esi + 8]
mov eax, ebx
call fcn.004f7c64
cmp byte [0x53c87c], 0
jne case.0x501200.211
cmp byte [0x53c8b0], 0
jne case.0x501200.211
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x30]
call fcn.00411b74
test eax, eax
jge case.0x501200.211
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x30]
call fcn.004119bc
mov eax, dword [ebx + 0x30]
cmp dword [eax + 8], 0x64
jle 0x4ffb33
xor edx, edx
call fcn.00411a08
mov al, byte [esi + 0xd]
cmp al, 0xa
jne 0x500f02
xor eax, eax
mov al, byte [esi + 0xc]
cmp eax, 0xa6
jg 0x4ffbaf
je 0x500e99
cmp eax, 0x91
jg 0x4ffb86
je 0x500761
sub eax, 0x65
je 0x4ffc3c
sub eax, 0x11
je 0x500467
sub eax, 3
je 0x50049d
sub eax, 0x13
je 0x5004ce
jmp case.0x501200.211
sub eax, 0x94
je 0x5009c5
sub eax, 5
je 0x5009ce
dec eax
je 0x500b2f
sub eax, 2
je 0x500e76
jmp case.0x501200.211
add eax, 0xffffff4c
cmp eax, 0x1d
ja case.0x501200.211
jmp dword [eax*4 + 0x4ffbc4]
mov eax, dword [0x53d014]
cmp dword [eax + 4], 0
jne 0x4ffc52
cmp dword [eax], 0
jbe case.0x501200.211
jmp 0x4ffc58
jle case.0x501200.211
mov al, byte [0x502050]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
lea edx, [esi + 0x20]
mov ecx, 0x400
call fcn.00403e28
mov eax, dword [ebp - 0x78]
mov ecx, 0x50205c
mov edx, 0x502068
call fcn.0040d608
mov edx, dword [ebp - 0x74]
lea eax, [ebx + 4]
call fcn.00403c4c
lea edx, [ebp - 0x7c]
lea eax, [esi + 0x40]
call fcn.00409a90
mov edx, dword [ebp - 0x7c]
lea eax, [ebx + 0xc]
call fcn.00403c4c
mov edx, dword [ebx + 0xc]
mov eax, 0x502074
call fcn.00404164
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4ffcc2
mov dword [ebp - 0x14], 0x3e8
lea eax, [ebx + 0x10]
push eax
mov edx, dword [ebp - 0x14]
inc edx
mov eax, dword [ebx + 0xc]
mov ecx, 0x3e8
call fcn.00404080
lea eax, [ebx + 0xc]
mov ecx, 0x3e8
mov edx, dword [ebp - 0x14]
call fcn.004040c0
lea edi, [esi + 0x40]
mov eax, edi
call fcn.00409840
inc eax
add edi, eax
mov eax, dword [esi + 4]
mov edx, edi
sub edx, esi
cmp eax, edx
jle 0x4ffd53
mov edx, 0x502078
mov ecx, 6
mov eax, edi
call fcn.004099ac
test eax, eax
jne 0x4ffd1e
lea eax, [ebp - 0x2c]
call fcn.00403bf8
jmp 0x4ffd47
mov edx, 0x502080
mov ecx, 6
mov eax, edi
call fcn.004099ac
test eax, eax
jne 0x4ffd3d
lea eax, [ebp - 0x2c]
call fcn.00403bf8
jmp 0x4ffd47
lea edx, [ebp - 0x2c]
mov eax, edi
call fcn.00409a90
mov eax, edi
call fcn.00409840
inc eax
add edi, eax
jmp 0x4ffd5b
lea eax, [ebp - 0x2c]
call fcn.00403bf8
cmp dword [ebp - 0x2c], 0
jne 0x4ffd6c
lea edx, [ebp - 0x2c]
mov eax, dword [ebx + 0x34]
call fcn.0046744c
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
call fcn.004f4f48
cmp dword [ebp - 0x1c], 0
je 0x4ffd8a
lea eax, [ebx + 4]
mov edx, dword [ebp - 0x1c]
call fcn.00403c4c
jmp 0x4ffd95
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
call fcn.004f4fb8
mov eax, dword [esi + 4]
mov edx, edi
sub edx, esi
cmp eax, edx
jle 0x4ffdab
cmp dword [ebx + 0x34], 0
jne 0x4ffdab
mov eax, dword [edi]
mov dword [ebx + 0x34], eax
lea ecx, [ebp - 0x80]
mov eax, dword [ebx + 0x34]
xor edx, edx
call fcn.004657f0
mov edx, dword [ebp - 0x80]
lea eax, [ebx + 8]
call fcn.00403c4c
cmp byte [0x53c840], 0
je 0x4ffdd8
mov eax, ebx
mov edx, dword [ebx + 8]
call fcn.00403c4c
jmp 0x4ffde2
mov eax, ebx
mov edx, dword [ebx + 4]
call fcn.00403c4c
mov eax, dword [ebx]
call fcn.004f7ce0
mov edi, eax
test edi, edi
je 0x4ffe12
cmp ebx, edi
je 0x4ffe12
mov eax, edi
mov edx, 0x502090
call fcn.00403c4c
cmp byte [edi + 0x78], 2
je 0x4ffe12
mov ecx, dword [edi + 0x28]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005022d8
mov edx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.004acdf0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x4ffe50
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
mov edx, dword [ebp - 0x14]
call fcn.004acd88
mov edi, eax
lea eax, [ebp - 0x30]
mov edx, dword [edi + 4]
call fcn.00403c90
mov byte [ebx + 0x107a], 0xff
cmp byte [ebx + 0x78], 1
je 0x500165
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edi, eax
call fcn.004fa1cc
cmp edi, eax
jl 0x4ffeb6
cmp byte [0x53c7d4], 0
jne 0x4ffe8c
mov eax, dword [0x53d3ec]
cmp byte [eax], 0
je 0x4ffea7
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x98
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004f9cbc
call fcn.004036e4
call fcn.004036e4
jmp 0x501fdb
mov byte [ebp - 0x31], 0
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x6c], eax
mov byte [ebx + 0x78], 1
mov edx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
call fcn.004ff748
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x107a], 0
je 0x4fff17
mov edx, dword [ebx]
lea eax, [ebp - 0x84]
mov ecx, 0x5020a0
call fcn.00403ec4
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0x54]
jmp 0x4fff30
mov ecx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0x54]
mov ecx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0x24]
mov eax, dword [0x53c984]
cmp dword [eax], 0
je 0x4fff64
mov eax, dword [0x53c984]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004efd24
mov eax, dword [0x53d3dc]
cmp dword [eax], 0
je 0x4fff7f
mov eax, dword [0x53d3dc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004ca2c4
lea eax, [ebp - 0x88]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x280]
call fcn.00403db0
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [eax]
call dword [edx + 0x14]
lea edx, [ebp - 0x8c]
call fcn.00408ff0
mov edx, dword [ebp - 0x8c]
pop eax
call fcn.00403e80
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x398]
mov eax, dword [eax + 0x1f0]
mov edx, 2
call fcn.00470294
pop edx
call fcn.0047020c
mov eax, dword [ebx + 4]
call fcn.004ff8a8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jge 0x500035
push dword [ebx + 4]
push 0x5020b0
push dword [ebx + 8]
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00403f38
mov edx, dword [ebp - 0x90]
mov eax, dword [0x569e78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov byte [0x53c7fc], 1
jmp 0x5000ad
lea ecx, [ebp - 0x94]
mov edx, dword [ebp - 0x18]
mov eax, dword [0x569e78]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x94]
push eax
push dword [ebx + 4]
push 0x5020b0
push dword [ebx + 8]
lea eax, [ebp - 0x98]
mov edx, 3
call fcn.00403f38
mov edx, dword [ebp - 0x98]
pop eax
call fcn.00403f88
je 0x5000ad
push dword [ebx + 4]
push 0x5020b0
push dword [ebx + 8]
lea eax, [ebp - 0x9c]
mov edx, 3
call fcn.00403f38
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x18]
mov eax, dword [0x569e78]
mov edi, dword [eax]
call dword [edi + 0x20]
mov byte [0x53c7fc], 1
lea eax, [ebp - 0xa0]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x39c]
call fcn.00403db0
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [0x569e78]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov edx, dword [eax]
call dword [edx + 0x14]
pop edx
xchg edx, eax
sub eax, edx
lea edx, [ebp - 0xa4]
call fcn.00408ff0
mov edx, dword [ebp - 0xa4]
pop eax
call fcn.00403e80
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x398]
mov eax, dword [eax + 0x1f0]
mov edx, 4
call fcn.00470294
pop edx
call fcn.0047020c
mov eax, dword [ebx]
call fcn.004db41c
push 0x5020bc
push dword [ebx + 0x10]
push 0x5020c8
lea eax, [ebp - 0xa8]
mov edx, 3
call fcn.00403f38
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebx]
mov eax, dword [0x53d024]
mov eax, dword [eax]
call fcn.004dacb4
cmp dword [ebx + 0x6c], 0x2480000
jle 0x500196
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x1090], eax
mov ecx, dword [ebx + 0x1090]
mov edx, dword [ebx]
mov eax, dword [0x53cb70]
mov eax, dword [eax]
call fcn.004e9d28
lea edi, [esi + 0x3c]
mov eax, dword [edi]
mov dword [ebx + 0x11a8], eax
mov eax, dword [0x53c7ac]
sub eax, 0x230000
cmp eax, 0xfff54604
je 0x5001c3
xor eax, eax
mov al, byte [0x53c774]
shl eax, 8
xor edx, edx
mov dl, byte [0x53c778]
shl edx, 0x10
or eax, edx
mov dword [ebp - 0x10], eax
jmp 0x50023e
cmp byte [ebp - 0x31], 0
je 0x5001d2
mov dword [ebp - 0x10], 0x10100
jmp 0x500211
xor eax, eax
mov al, byte [0x53c774]
shl eax, 8
xor edx, edx
mov dl, byte [0x53c778]
shl edx, 0x10
or eax, edx
mov dword [ebp - 0x10], eax
cmp byte [0x53c7a8], 0
je 0x5001fe
cmp byte [0x540cff], 0xa3
jne 0x500207
cmp byte [0x53c7d0], 0
je 0x500211
xor eax, eax
mov al, byte [0x53c718]
or dword [ebp - 0x10], eax
lea eax, [ebp - 0xac]
mov edx, 0x568e28
call fcn.00403e1c
mov edx, dword [ebp - 0xac]
mov eax, dword [ebx]
call fcn.00403f88
je 0x50023e
mov eax, dword [0x53cb04]
movzx eax, byte [eax]
shl eax, 0x18
or dword [ebp - 0x10], eax
mov edi, 0x53000000
cmp byte [0x53c720], 0
jne 0x500256
cmp byte [0x53c728], 0
jne 0x500256
inc edi
mov al, byte [ebp - 0x31]
xor al, 1
test al, al
je 0x50030c
cmp byte [0x53c724], 0
je 0x50026f
add edi, 0x20
cmp byte [0x53c738], 0
je 0x50027e
add edi, 0x1000
cmp byte [0x53c730], 0
je 0x50028a
add edi, 0x40
add edi, 2
cmp byte [0x53c734], 0
je 0x500299
add edi, 4
cmp byte [0x53c728], 0
je 0x5002a8
add edi, 0x80
cmp byte [0x53c880], 0
je 0x5002b7
add edi, 0x400
add edi, 0x800
cmp byte [0x569eb4], 0
je 0x5002cc
add edi, 0x2000
cmp byte [0x53c73c], 0
jne 0x5002db
add edi, 0x4000
cmp byte [0x53c740], 0
jne 0x5002ea
add edi, 0x8000
cmp byte [0x569eb5], 0
je 0x5002f9
add edi, 0x10000
mov eax, dword [0x53d130]
mov eax, dword [eax]
call eax
test eax, eax
je 0x50030c
add edi, 0x80000
cmp byte [0x53c744], 0
je 0x500318
add edi, 0x10
cmp byte [0x53c744], 2
jne 0x500327
add edi, 0x100
cmp byte [0x53c744], 3
jne 0x500336
add edi, 0x200
cmp byte [0x53c744], 4
jne 0x500345
add edi, 0x100000
movsx eax, word [0x53c710]
push eax
push edi
movzx eax, word [0x53c758]
shl eax, 0x10
movzx edx, word [0x53c754]
or eax, edx
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov eax, ebx
call fcn.004f7b7c
mov eax, dword [0x53c7a0]
mov dword [ebx + 0x20], eax
mov eax, dword [0x53c7a4]
mov dword [ebx + 0x24], eax
mov al, byte [ebp - 0x31]
xor al, 1
test al, al
je 0x5003a9
mov eax, dword [0x53c7f8]
sub eax, dword [esi + 0x1c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x5003a9
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ff3e0
mov eax, dword [esi + 0x14]
and eax, 0xffff0000
cmp eax, 0x53530000
jne 0x500406
test byte [esi + 0x14], 0x40
je 0x5003ea
cmp byte [0x53c890], 0
je 0x5003e3
mov eax, dword [0x53c88c]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004f7a18
test eax, eax
je 0x5003ea
mov byte [ebx + 0x107c], 0xff
jmp 0x5003ea
mov byte [ebx + 0x107c], 0xff
test byte [esi + 0x14], 0x20
je 0x5003f7
mov byte [ebx + 0x107b], 0xff
mov edx, 0x53c888
mov eax, 0x53c884
call fcn.004fe5b0
cmp byte [ebx + 0x107a], 0
jne 0x500415
cmp byte [ebp - 0x31], 0
je 0x500432
push 1
push 0
push 0
mov eax, dword [ebp - 0x30]
push eax
push 0
push 0
mov ecx, 0x89
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004f9cbc
mov eax, ebx
call fcn.004e40bc
cmp dword [ebx + 0x12c0], 0
je case.0x501200.211
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov cl, 1
mov edx, dword [ebp - 0x14]
call fcn.004a8624
mov byte [ebx + 0x77], 0xff
call fcn.004f9398
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
mov byte [ebx + 0x76], 0
jmp case.0x501200.211
mov byte [ebx + 0x107b], 0xff
mov edx, 0x53c888
mov eax, 0x53c884
call fcn.004fe5b0
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
mov byte [ebx + 0x76], 0
cmp byte [ebx + 0x1079], 0
je case.0x501200.211
xor edx, edx
mov eax, ebx
call fcn.004ff6f8
jmp case.0x501200.211
mov eax, dword [0x53d3bc]
cmp dword [eax], 0
jne 0x5004fc
mov ecx, dword [0x53d3bc]
mov eax, dword [0x53d0f8]
mov eax, dword [eax]
mov edx, dword [0x4dadfc]
call fcn.00451d9c
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
call fcn.004dafe4
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x374]
call fcn.00403db0
call fcn.0040a5e0
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xb4]
call fcn.0040b23c
push dword [ebp - 0xb4]
push 0x502068
call fcn.0040a60c
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xb8]
call fcn.0040b254
push dword [ebp - 0xb8]
lea eax, [ebp - 0xb0]
mov edx, 3
call fcn.00403f38
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x1c]
mov edx, 0x5020d4
call fcn.004cc428
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x208]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x378]
call fcn.00403db0
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
mov edx, 0x5020d4
call fcn.004cc428
lea edx, [ebp - 0xbc]
mov eax, dword [ebx + 0x28]
call fcn.004aa91c
mov ecx, dword [ebp - 0xbc]
lea eax, [ebp - 0x1c]
mov edx, 0x5020e0
call fcn.004cc428
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x208]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea edx, [ebp - 0x1c]
lea eax, [esi + 0x20]
call fcn.00409a90
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x208]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x208]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53d0f8]
mov eax, dword [eax]
call fcn.0045198c
mov eax, dword [0x53d3bc]
mov eax, dword [eax]
call fcn.0044ed40
mov edx, dword [0x53d25c]
mov edx, dword [edx]
lea eax, [ebp - 0x1c]
mov ecx, 0x5020ec
call fcn.00403ec4
mov eax, dword [ebp - 0x1c]
call fcn.004092c8
test al, al
je case.0x501200.211
mov eax, dword [0x53cc58]
cmp dword [eax], 0
jne case.0x501200.211
mov dl, 1
mov eax, dword [0x410410]
call fcn.00402e7c
mov edx, dword [0x53ce38]
mov dword [edx], eax
mov eax, dword [0x53ce38]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x1c]
mov edx, dword [ebx]
call fcn.00403c90
jmp 0x500705
mov eax, dword [0x53d25c]
push dword [eax]
push 0x502104
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x1c]
mov dl, byte [edx]
call fcn.00403da0
push dword [ebp - 0xc4]
push 0x502114
lea eax, [ebp - 0xc0]
mov edx, 4
call fcn.00403f38
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x53ce38]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, 1
call fcn.004040c0
mov eax, dword [ebp - 0x1c]
call fcn.00403e78
test eax, eax
jg 0x5006aa
mov edx, dword [0x53d25c]
mov edx, dword [edx]
lea eax, [ebp - 0xc8]
mov ecx, 0x502124
call fcn.00403ec4
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x53ce38]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53cc54]
mov dword [eax], 2
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4ec278]
call fcn.00418c1c
mov edx, dword [0x53cc58]
mov dword [edx], eax
jmp case.0x501200.211
call fcn.0040a5e0
fstp qword [ebp - 0xd0]
wait
call fcn.0040a60c
fadd qword [ebp - 0xd0]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1c]
call fcn.0040b26c
mov dl, 1
mov eax, dword [0x410410]
call fcn.00402e7c
mov edi, eax
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0xd4]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x3bc]
call fcn.00403db0
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
call fcn.00403ec4
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [esi + 0x10]
cmp eax, 1
jne 0x5007f2
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x404]
call fcn.00403db0
jmp 0x50085f
cmp eax, 2
jne 0x50080f
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x408]
call fcn.00403db0
jmp 0x50085f
cmp eax, 3
jne 0x50082c
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x468]
call fcn.00403db0
jmp 0x50085f
cmp eax, 4
jne 0x500849
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x94c]
call fcn.00403db0
jmp 0x50085f
lea eax, [ebp - 0x1c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x950]
call fcn.00403db0
lea edx, [ebp - 0xd8]
lea eax, [esi + 0x20]
call fcn.00409a90
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0x1c]
call fcn.00403e80
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [esi + 0x10], 3
jg 0x5008fa
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2dc]
mov eax, dword [eax + 0x208]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0xdc]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x118]
call fcn.00403db0
lea eax, [ebp - 0xdc]
mov edx, 0x502140
call fcn.00403e80
mov edx, dword [ebp - 0xdc]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d8]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x569e9c]
mov eax, edi
call fcn.00468410
jmp 0x500967
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2ec]
mov eax, dword [eax + 0x208]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0xe0]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d8]
call fcn.00403db0
lea eax, [ebp - 0xe0]
mov edx, 0x502140
call fcn.00403e80
mov edx, dword [ebp - 0xe0]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e8]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x569ea0]
mov eax, edi
call fcn.00468410
mov eax, edi
call fcn.00402eac
mov eax, dword [0x53d0d0]
cmp byte [eax], 0
jne 0x500981
cmp byte [0x540c9c], 0
je 0x5009b5
mov eax, dword [0x53d0d0]
mov byte [eax], 0
mov eax, dword [0x53d0f8]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
call fcn.0044ed40
mov edx, 2
mov eax, 0x50214c
call fcn.004ec2d8
jmp case.0x501200.211
mov eax, dword [0x53c99c]
mov dword [eax], 1
jmp case.0x501200.211
mov byte [ebx + 0x76], 0
jmp case.0x501200.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x5009dd
mov eax, dword [ebp - 0xc]
call fcn.004f5364
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov byte [0x53c864], 1
jmp 0x500b10
lea edx, [ebp - 0x60]
mov ecx, 0x28
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
lea eax, [ebp - 0xe4]
lea edx, [ebp - 0x60]
call fcn.00403e1c
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b8]
call fcn.004acdf0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x500a4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b8]
mov edx, dword [ebp - 0x14]
call fcn.004acd88
mov ebx, eax
mov eax, dword [ebp - 0x3c]
add dword [ebx + 4], eax
jmp 0x500a84
mov edx, dword [0x4aca90]
mov eax, 8
call fcn.00404a7c
mov ebx, eax
mov eax, ebx
lea edx, [ebp - 0x60]
call fcn.00403e1c
mov eax, dword [ebp - 0x3c]
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x14]
neg edx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b8]
mov ecx, ebx
call fcn.004acdcc
lea eax, [ebp - 0xe8]
lea edx, [ebp - 0x60]
call fcn.00403e1c
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
call fcn.004acdf0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x500ad1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
mov edx, dword [ebp - 0x14]
call fcn.004acd88
mov ebx, eax
call fcn.0040a5e0
call fcn.004029d8
mov dword [ebx + 4], eax
jmp 0x500b10
mov edx, dword [0x4aca90]
mov eax, 8
call fcn.00404a7c
mov ebx, eax
mov eax, ebx
lea edx, [ebp - 0x60]
call fcn.00403e1c
call fcn.0040a5e0
call fcn.004029d8
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x14]
neg edx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
mov ecx, ebx
call fcn.004acdcc
mov eax, dword [ebp - 0xc]
call fcn.00413ff8
mov ebx, eax
mov eax, dword [ebp - 0xc]
call fcn.00414014
cmp ebx, eax
jl 0x5009f6
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x11a8], eax
lea eax, [esi + 0x20]
mov esi, eax
lea eax, [esi + 0x10]
mov edx, 0x50215c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
je case.0x501200.211
lea eax, [esi + 0x24]
mov edx, 0x50215c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
je case.0x501200.211
mov eax, 0x569ee4
mov edx, esi
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x500bc3
mov eax, 0x569f08
lea edx, [esi + 0x24]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x500bc3
mov eax, dword [0x53c86c]
mov edx, dword [0x53c870]
add eax, 0x1388
adc edx, 0
cmp edx, dword [0x53c7a4]
jne 0x500bbd
cmp eax, dword [0x53c7a0]
jbe 0x500bc3
jmp case.0x501200.211
jg case.0x501200.211
push esi
mov edi, 0x569ee4
mov ecx, 0xe
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x53c7a0]
mov dword [0x53c86c], eax
mov eax, dword [0x53c7a4]
mov dword [0x53c870], eax
lea eax, [ebp - 0xec]
lea edx, [esi + 0x24]
call fcn.00403e1c
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0x24]
call fcn.004ff7f8
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call fcn.004f4f48
lea eax, [ebp - 0xf0]
lea edx, [esi + 0x10]
call fcn.00403e1c
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0x20]
call fcn.004ff7f8
cmp byte [0x53c720], 0
je 0x500e42
mov dl, 1
mov eax, dword [0x410410]
call fcn.00402e7c
mov edi, eax
call fcn.0040a5e0
fstp qword [ebp - 0xd0]
wait
call fcn.0040a60c
fadd qword [ebp - 0xd0]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1c]
call fcn.0040b26c
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0xf4]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x558]
call fcn.00403db0
lea eax, [ebp - 0xf4]
mov edx, dword [ebx]
call fcn.00403e80
mov edx, dword [ebp - 0xf4]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, 0x502170
lea eax, [ebp - 0x10c]
call fcn.00402a4c
mov edx, esi
lea eax, [ebp - 0x10c]
mov cl, 0x16
call fcn.00402a1c
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x1c]
call fcn.00403e1c
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x110]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x560]
call fcn.00403db0
push dword [ebp - 0x110]
push dword [ebp - 0x20]
push 0x502180
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0x20]
call fcn.004f4f48
push dword [ebp - 0x114]
push 0x5020c8
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00403f38
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x118]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x564]
call fcn.00403db0
push dword [ebp - 0x118]
push dword [ebp - 0x24]
push 0x502180
push dword [ebp - 0x28]
push 0x5020c8
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00403f38
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e4]
mov eax, dword [eax + 0x208]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0x11c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d4]
call fcn.00403db0
lea eax, [ebp - 0x11c]
mov edx, 0x502140
call fcn.00403e80
mov edx, dword [ebp - 0x11c]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e0]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x569e98]
mov eax, edi
call fcn.00468410
mov eax, dword [0x53d0d0]
cmp byte [eax], 0
jne 0x500dfe
cmp byte [0x540c9c], 0
je 0x500e20
mov eax, dword [0x53d0d0]
mov byte [eax], 0
mov eax, dword [0x53d0f8]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
call fcn.0044ed40
jmp 0x500e2b
mov eax, dword [0x53c99c]
mov dword [eax], 1
cmp byte [0x53c750], 0
je 0x500e3b
mov byte [0x53c814], 1
mov eax, edi
call fcn.00402eac
cmp byte [0x53c728], 0
je case.0x501200.211
lea eax, [ebp - 0x120]
mov edx, esi
call fcn.00403e1c
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.004fecd8
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
mov byte [ebx + 0x76], 2
mov eax, dword [0x53cdc4]
mov byte [eax], 1
jmp case.0x501200.211
mov eax, dword [0x53d044]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004e1048
jmp case.0x501200.211
mov byte [ebx + 0x107c], 0
jmp case.0x501200.211
mov eax, dword [0x53d3dc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004ca608
jmp case.0x501200.211
mov eax, dword [0x53d460]
mov byte [eax], 2
jmp case.0x501200.211
mov eax, dword [0x53d460]
mov byte [eax], 1
jmp case.0x501200.211
mov byte [ebx + 0x12d4], 1
jmp case.0x501200.211
mov byte [ebx + 0x12d4], 2
jmp case.0x501200.211
cmp al, 0xb
jne 0x5011df
xor eax, eax
mov al, byte [esi + 0xc]
add eax, 0xffffff5a
cmp eax, 0x13
ja case.0x501200.211
jmp dword [eax*4 + 0x500f24]
mov byte [ebx + 0x76], 0
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x6c], 0x2410271
jl case.0x501200.211
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x12a8], eax
jmp case.0x501200.211
cmp byte [ebx + 0x76], 1
jne case.0x501200.211
mov byte [ebx + 0x76], 4
jmp case.0x501200.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
cmp byte [esi + 0xc], 0xad
jne 0x501056
mov byte [ebx + 0x76], 0
mov byte [ebx + 0x77], 0
mov eax, ebx
call fcn.004cc5b0
mov edx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x50102a
mov ecx, 0x5020a0
mov edx, dword [ebx]
lea eax, [ebp - 0x124]
call fcn.00403ec4
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x1f0]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x501043
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
xor ecx, ecx
mov edx, dword [ebp - 0x14]
call fcn.004a8624
call fcn.004f9398
mov dl, 1
mov eax, ebx
call fcn.004ff6f8
jmp case.0x501200.211
cmp byte [ebx + 0x76], 6
jne case.0x501200.211
mov byte [ebx + 0x76], 2
jmp case.0x501200.211
call fcn.004fadd0
cmp dword [esi + 4], 0x20
jle 0x5010d7
lea edi, [esi + 0x20]
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1090], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x1094], eax
cmp dword [esi + 4], 0x68
jl 0x5010ce
lea eax, [ebx + 0x1098]
lea edx, [edi + 0x1c]
mov cl, 0x1f
call fcn.00402a68
cmp dword [esi + 4], 0x154
jl 0x5010ee
push esi
push edi
lea esi, [edi + 0x48]
lea edi, [ebx + 0x11ac]
mov ecx, 0x3f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [esi + 4], 0x164
jge 0x5010ee
mov byte [ebx + 0x1298], 0
jmp 0x5010ee
mov byte [ebx + 0x1098], 0
jmp 0x5010ee
lea edi, [esi + 0x10]
mov dword [ebx + 0x1090], 0xffffffff
mov dword [ebx + 0x1094], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4]
mov edx, dword [ebp - 0x14]
mov dword [ebx + edx*4 + 0x1080], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jne 0x5010f3
mov eax, dword [0x53cb70]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e9fc8
jmp case.0x501200.211
mov ecx, dword [ebx]
mov eax, dword [0x53d0e8]
mov eax, dword [eax]
mov edx, esi
call fcn.004dd5e0
jmp case.0x501200.211
mov eax, dword [0x53d044]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004e1ec0
jmp case.0x501200.211
mov eax, dword [0x53d044]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e2020
jmp case.0x501200.211
mov eax, dword [0x53ceb0]
cmp dword [eax], 0
je case.0x501200.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10b8], eax
lea edx, [esi + 0x20]
lea eax, [ebx + 0x10bc]
mov ecx, 0x20
call fcn.004078e4
mov eax, dword [0x53ceb0]
mov eax, dword [eax]
mov edx, ebx
call fcn.004ee104
jmp case.0x501200.211
mov eax, dword [0x53d344]
cmp dword [eax], 0
je case.0x501200.211
cmp dword [esi + 4], 0xec
jl case.0x501200.211
lea eax, [esi + 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov esi, eax
lea edi, [ebx + 0x10dc]
mov ecx, 0x33
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x53d344]
mov eax, dword [eax]
mov edx, ebx
call fcn.004ee104
jmp case.0x501200.211
cmp al, 0xc
jne case.0x501200.211
xor eax, eax
mov al, byte [esi + 0xc]
add eax, 0xffffff2d
cmp eax, 0x20
ja case.0x501200.211
mov al, byte [eax + 0x501207]
jmp dword [eax*4 + 0x501228]
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
mov byte [ebx + 0x76], 2
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x14]
mov edx, dword [0x53cd04]
cmp eax, dword [edx]
jl case.0x501200.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x5012a6
mov eax, dword [ebp - 0xc]
call fcn.004f5364
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 4]
lea edi, [esi + 0x20]
cmp dword [ebx + 0x6c], 0x2410271
jl 0x5012bd
mov eax, dword [edi]
mov dword [ebx + 0x12a8], eax
add edi, 4
cmp dword [edi], 0xfffffffe
jne 0x5012cb
xor eax, eax
call fcn.004ccee0
jmp 0x501306
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x501306
mov edx, dword [0x53d39c]
mov edx, dword [edx + 6]
cmp byte [edx + eax], 0
je 0x5012fc
mov edx, dword [0x53d39c]
mov edx, dword [edx + 6]
mov byte [edx + eax], 0
mov edx, dword [0x53cb98]
mov edx, dword [edx]
xchg edx, eax
call fcn.004e28a8
add edi, 4
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x5012d2
mov eax, dword [0x53c7ac]
add eax, 0x5312555
cmp eax, 0x5496b59
je 0x50132b
mov eax, 0x50218c
call fcn.004f4c68
mov eax, 0x2000
call fcn.004089d4
mov eax, dword [0x53cb98]
mov eax, dword [eax]
call fcn.004e28a0
test eax, eax
jle case.0x501200.211
mov eax, dword [0x53d39c]
mov byte [eax + 1], 1
jmp case.0x501200.211
mov eax, dword [0x53d014]
cmp dword [eax + 4], 0
jne 0x501363
cmp dword [eax], 0
jbe case.0x501200.211
jmp 0x501369
jle case.0x501200.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53d39c]
cmp eax, dword [edx + 0xe]
jne case.0x501200.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x50138a
mov eax, dword [ebp - 0xc]
call fcn.004f5364
mov eax, dword [ebp - 0xc]
call fcn.004ccf00
mov eax, dword [0x53cd1c]
xor edx, edx
mov dword [eax], edx
mov byte [ebx + 0x76], 0
jmp case.0x501200.211
mov eax, dword [0x53d014]
cmp dword [eax + 4], 0
jne 0x5013ba
cmp dword [eax], 0
jbe case.0x501200.211
jmp 0x5013c0
jle case.0x501200.211
cmp byte [0x53c7dc], 3
jne case.0x501200.211
cmp dword [ebx + 0x12bc], 0
je case.0x501200.211
lea edx, [ebp - 0x134]
mov eax, dword [0x53d240]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
lea eax, [ebp - 0x134]
push eax
lea edx, [ebp - 0x144]
mov eax, dword [ebx + 0x12c0]
call fcn.004336d0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x70]
push eax
call sub.user32.dll_IntersectRect
cmp dword [ebp - 0x70], 0
jne 0x501436
cmp dword [ebp - 0x6c], 0
jne 0x501436
cmp dword [ebp - 0x68], 0
jne 0x501436
cmp dword [ebp - 0x64], 0
je case.0x501200.211
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
jne 0x501468
mov eax, dword [ebx + 0x12bc]
call fcn.00402eac
mov dl, 1
mov eax, dword [0x41aaf4]
call fcn.00420ce8
mov dword [ebx + 0x12bc], eax
cmp dword [esi + 0x1c], 0
je 0x5014d4
cmp byte [esi + 0xc], 0xec
jne 0x501479
mov edi, dword [esi + 0x14]
jmp 0x50147b
xor edi, edi
push edi
mov eax, dword [ebp - 0xc]
call fcn.00414014
mov ecx, eax
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00462630
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.00414008
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov edx, dword [eax + 0x24]
mov eax, dword [ebx + 0x12bc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.004625f8
jmp 0x5014ef
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov eax, dword [ebx + 0x12bc]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [0x53d490]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043352c
mov edx, dword [0x53d47c]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043354c
mov eax, dword [ebx + 0x12c0]
mov edx, dword [eax]
call dword [edx + 0x74]
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x12c4], eax
jmp case.0x501200.211
mov eax, dword [0x53d014]
cmp dword [eax + 4], 0
jne 0x501544
cmp dword [eax], 0
jbe case.0x501200.211
jmp 0x50154a
jle case.0x501200.211
cmp byte [0x53c7dc], 3
jne case.0x501200.211
cmp dword [ebx + 0x12bc], 0
je case.0x501200.211
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x4ad410]
call fcn.00403024
test al, al
jne 0x501596
mov eax, dword [ebx + 0x12bc]
call fcn.00402eac
mov dl, 1
mov eax, dword [0x4ad410]
call fcn.004ad6c0
mov dword [ebx + 0x12bc], eax
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov eax, dword [ebx + 0x12bc]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [0x53d490]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043352c
mov edx, dword [0x53d47c]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043354c
mov eax, dword [ebx + 0x12c0]
mov edx, dword [eax]
call dword [edx + 0x74]
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x12c4], eax
jmp case.0x501200.211
mov eax, dword [0x53d014]
cmp dword [eax + 4], 0
jne 0x501606
cmp dword [eax], 0
jbe case.0x501200.211
jmp 0x50160c
jle case.0x501200.211
cmp dword [0x569e68], 0
je 0x50164b
cmp ebx, dword [0x569e68]
je 0x50164b
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x569e68]
mov eax, dword [ebp - 4]
call fcn.004f9cbc
mov eax, dword [0x569e68]
call fcn.004f4c78
jmp case.0x501200.211
cmp byte [0x53c7dc], 0
je case.0x501200.211
mov eax, dword [esi + 0x10]
cmp eax, 0xffffffff
je 0x50167e
mov edx, eax
and edx, 0xffff
mov ecx, dword [0x53d2ac]
mov dword [ecx], edx
shr eax, 0x10
mov edx, dword [0x53d2ac]
mov dword [edx + 4], eax
jmp 0x501689
mov eax, dword [0x53d2ac]
mov dword [eax], 0xffffffff
cmp byte [esi + 0xc], 0xeb
jne 0x501694
mov edi, dword [esi + 0x18]
jmp 0x501696
xor edi, edi
push edi
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00462630
cmp dword [esi + 0x14], 0
je 0x5016bd
cmp dword [ebx + 0x6c], 0x247007e
jge 0x5016e6
mov eax, dword [0x53cd50]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov edx, dword [edx + 0x24]
mov ecx, dword [0x53cd50]
mov dword [ecx], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov dword [edx + 0x24], eax
jmp 0x501717
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov eax, dword [eax + 0x24]
call fcn.00414014
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 4]
mov eax, dword [0x53cd50]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.004680a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.004625f8
mov eax, dword [0x53cd50]
mov eax, dword [eax]
xor edx, edx
call fcn.00414008
cmp byte [0x53c7dc], 3
jne 0x50183f
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
jne 0x501772
mov eax, dword [ebx + 0x12bc]
call fcn.00402eac
mov dl, 1
mov eax, dword [0x41aaf4]
call fcn.00420ce8
mov dword [ebx + 0x12bc], eax
mov edx, dword [0x53cd50]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12bc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53c7a0]
mov edx, dword [0x53c7a4]
sub eax, dword [0x53c8a8]
sbb edx, dword [0x53c8ac]
cmp edx, 0
jne 0x5017ab
cmp eax, 0xbb8
jbe 0x5017ef
jmp 0x5017ad
jle 0x5017ef
mov eax, dword [0x53d2ac]
cmp dword [eax], 0xffffffff
je 0x5017ef
mov eax, dword [0x53ccb8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x128]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebx + 0x12bc]
call fcn.00421254
mov ecx, dword [0x53d2ac]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53d2ac]
mov edx, dword [edx]
call fcn.0041c75c
mov eax, ebx
call fcn.004e3c48
test al, al
je 0x50181f
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
je 0x50181f
mov eax, dword [0x53d240]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e3c80
jmp 0x50182f
mov eax, dword [0x53cbb8]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0x3ff00000
mov eax, dword [ebx + 0x12c0]
mov edx, dword [eax]
call dword [edx + 0x74]
jmp 0x5018e5
mov edx, dword [0x53cd50]
mov edx, dword [edx]
mov eax, dword [0x53d10c]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53c7a0]
mov edx, dword [0x53c7a4]
sub eax, dword [0x53c8a8]
sbb edx, dword [0x53c8ac]
cmp edx, 0
jne 0x501879
cmp eax, 0xbb8
jbe 0x5018be
jmp 0x50187b
jle 0x5018be
mov eax, dword [0x53d2ac]
cmp dword [eax], 0xffffffff
je 0x5018be
mov eax, dword [0x53ccb8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x128]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x53d10c]
mov eax, dword [eax]
call fcn.00421254
mov ecx, dword [0x53d2ac]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53d2ac]
mov edx, dword [edx]
call fcn.0041c75c
mov eax, dword [0x53ccb8]
mov eax, dword [eax]
call fcn.004e7578
mov eax, dword [0x53ccb8]
mov eax, dword [eax]
mov esi, dword [eax + 0x2ec]
xor edx, edx
mov eax, dword [esi + 0x12c]
call dword [esi + 0x128]
mov dword [ebx + 0x12c4], 0x4000
jmp case.0x501200.211
mov eax, dword [0x53c984]
cmp dword [eax], 0
je case.0x501200.211
mov eax, dword [0x53c984]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004ef850
jmp case.0x501200.211
cmp byte [0x53c7a8], 0
je 0x501930
cmp dword [0x540cb8], 0x11332223
je case.0x501200.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x50193f
mov eax, dword [ebp - 0xc]
call fcn.004f5364
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.004fe3a0
jmp case.0x501200.211
mov edx, esi
mov eax, ebx
call fcn.004fe404
jmp case.0x501200.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x50196b
mov eax, dword [ebp - 0xc]
call fcn.004f5364
mov eax, dword [0x53d3dc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004ca608
jmp case.0x501200.211
mov eax, dword [0x53d0cc]
cmp byte [eax], 0
jne case.0x501200.211
mov dl, 1
mov eax, dword [0x410410]
call fcn.00402e7c
mov edi, eax
call fcn.0040a5e0
fstp qword [ebp - 0xd0]
wait
call fcn.0040a60c
fadd qword [ebp - 0xd0]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1c]
call fcn.0040b26c
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x148]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x57c]
call fcn.00403db0
lea eax, [ebp - 0x148]
mov edx, dword [ebx]
call fcn.00403e80
mov edx, dword [ebp - 0x148]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [esi + 0x10], 0
je 0x501a4d
lea eax, [ebp - 0x14c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x420]
call fcn.00403db0
lea eax, [ebp - 0x14c]
push eax
lea edx, [ebp - 0x150]
mov eax, dword [esi + 0x10]
call fcn.00408ff0
mov edx, dword [ebp - 0x150]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x14c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea ebx, [esi + 0x20]
cmp dword [ebx + 4], 0
je 0x501aa1
lea eax, [ebp - 0x154]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x400]
call fcn.00403db0
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebx + 4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x158]
call fcn.00409020
mov edx, dword [ebp - 0x158]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x154]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebx + 0xc], 0
je 0x501af2
lea eax, [ebp - 0x15c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x6d8]
call fcn.00403db0
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [ebx + 0xc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x160]
call fcn.00409020
mov edx, dword [ebp - 0x160]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x15c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebx + 0x10], 0
je 0x501b43
lea eax, [ebp - 0x164]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x580]
call fcn.00403db0
lea eax, [ebp - 0x164]
push eax
mov eax, dword [ebx + 0x10]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x168]
call fcn.00409020
mov edx, dword [ebp - 0x168]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x164]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebx + 0x14], 0
je 0x501b94
lea eax, [ebp - 0x16c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x584]
call fcn.00403db0
lea eax, [ebp - 0x16c]
push eax
mov eax, dword [ebx + 0x14]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x170]
call fcn.00409020
mov edx, dword [ebp - 0x170]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x16c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebx + 0x1c], 0
je 0x501be5
lea eax, [ebp - 0x174]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x920]
call fcn.00403db0
lea eax, [ebp - 0x174]
push eax
mov eax, dword [ebx + 0x1c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x178]
call fcn.00409020
mov edx, dword [ebp - 0x178]
pop eax
call fcn.00403e80
mov edx, dword [ebp - 0x174]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e4]
mov eax, dword [eax + 0x208]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0x17c]
mov edx, dword [0x53c9e0]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d4]
call fcn.00403db0
lea eax, [ebp - 0x17c]
mov edx, 0x502140
call fcn.00403e80
mov edx, dword [ebp - 0x17c]
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e0]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x569e98]
mov eax, edi
call fcn.00468410
mov eax, dword [0x53d0d0]
cmp byte [eax], 0
jne 0x501c65
cmp byte [0x540c9c], 0
je 0x501c87
mov eax, dword [0x53d0d0]
mov byte [eax], 0
mov eax, dword [0x53d0f8]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53d0f0]
mov eax, dword [eax]
call fcn.0044ed40
jmp 0x501c92
mov eax, dword [0x53c99c]
mov dword [eax], 1
cmp byte [0x53c74c], 0
je 0x501ca2
mov byte [0x53c814], 1
mov eax, edi
call fcn.00402eac
jmp case.0x501200.211
cmp dword [0x569e68], 0
je 0x501ced
cmp ebx, dword [0x569e68]
je 0x501ced
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x569e68]
mov eax, dword [ebp - 4]
call fcn.004f9cbc
mov eax, dword [0x569e68]
call fcn.004f4c78
jmp case.0x501200.211
cmp dword [ebx + 0x12c8], 0
jne 0x501d08
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x501d1b
mov eax, dword [ebx + 0x12c8]
xor edx, edx
call fcn.00414008
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x12c8]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x501200.211
mov eax, dword [ebx + 0x12c8]
mov esi, dword [eax + 4]
jmp 0x50164b
cmp byte [0x53c7dc], 3
jne case.0x501200.211
cmp dword [ebx + 0x12bc], 0
je case.0x501200.211
cmp dword [ebx + 0x12c8], 0
jne 0x501d7c
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x501d8f
mov eax, dword [ebx + 0x12c8]
xor edx, edx
call fcn.00414008
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x12c8]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x501200.211
mov eax, dword [ebx + 0x12c8]
mov esi, dword [eax + 4]
mov edx, dword [esi + 4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov ecx, dword [esi + 4]
mov edx, esi
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 8]
cmp byte [esi + 0xc], 0xed
je 0x501564
cmp byte [esi + 0xc], 0xec
je 0x5013da
jmp case.0x501200.211
cmp dword [ebx + 0x12c8], 0
jne 0x501e0b
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x501e1e
mov eax, dword [ebx + 0x12c8]
xor edx, edx
call fcn.00414008
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x12c8]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x501200.211
mov eax, dword [ebx + 0x12c8]
mov esi, dword [eax + 4]
mov edx, dword [esi + 4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov ecx, dword [esi + 4]
mov edx, esi
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 8]
jmp case.0x501200.220
cmp byte [0x53c7a8], 0
je 0x501e84
cmp dword [0x540cb8], 0x11332222
je case.0x501200.211
mov eax, dword [0x53d0c8]
cmp byte [eax], 1
jne case.0x501200.211
cmp dword [esi + 0x14], 0
jne 0x501f23
cmp dword [ebx + 0x12d0], 0
jne 0x501f23
mov eax, dword [0x53d25c]
push dword [eax]
push 0x5021a4
push dword [ebx]
mov eax, dword [0x53d29c]
push dword [eax]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00403f38
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0x1c]
call fcn.004095c0
mov eax, dword [ebp - 0x180]
call fcn.00462398
lea eax, [ebp - 0x184]
mov edx, dword [ebp - 0x1c]
call fcn.004043fc
mov eax, dword [ebp - 0x184]
mov dx, 0xffff
call fcn.0046604c
mov dword [ebx + 0x12d0], eax
mov eax, dword [esi + 0x18]
cdq
push edx
push eax
mov eax, dword [ebx + 0x12d0]
call fcn.00464468
push 0
push 0
mov eax, dword [ebx + 0x12d0]
call fcn.00464408
cmp dword [ebx + 0x12d0], 0
je case.0x501200.211
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x12d0]
mov edi, dword [eax]
call dword [edi + 8]
mov eax, dword [ebx + 0x12d0]
call fcn.004643e4
push edx
push eax
mov eax, dword [esi + 0x18]
cdq
cmp edx, dword [esp + 4]
jne 0x501f5a
cmp eax, dword [esp]
pop edx
pop eax
jne case.0x501200.211
lea eax, [ebx + 0x12d0]
call fcn.0040dc18
mov byte [ebx + 0x12d4], 3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x501f97
mov eax, dword [ebp - 0xc]
call fcn.00402eac
ret
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.00414008
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x501fdb
mov eax, dword [0x53cfbc]
cmp dword [eax], 0x184604
je 0x501fbd
mov eax, 0x5021b8
call fcn.004f4c68
jmp 0x501fc2
call fcn.004faee8
ret
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, 0x20
je 0x4ff987
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x502048
lea eax, [ebp - 0x184]
call fcn.004042bc
lea eax, [ebp - 0x180]
mov edx, 0xf
call fcn.00403c1c
lea eax, [ebp - 0x124]
mov edx, 6
call fcn.00403c1c
lea eax, [ebp - 0xf4]
mov edx, 9
call fcn.00403c1c
lea eax, [ebp - 0xc8]
mov edx, 0x16
call fcn.00403c1c
lea eax, [ebp - 0x30]
mov edx, 6
call fcn.00403c1c
ret