Function at 0x4fdf04
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 0x4fdf0d
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 0x5005f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ecx
call fcn.004f631c
mov ebx, eax
test ebx, ebx
je 0x500593
mov eax, dword [0x53b53c]
mov dword [ebx + 0x18], eax
mov eax, dword [0x53b540]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, 8
jge 0x4fdf65
mov eax, 0x20
jmp 0x4fdf85
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 0x4fdf85
mov eax, 0x1000
lea edx, [ebx + 0x79]
mov ecx, dword [ebx + 0x28]
xchg ecx, eax
call fcn.00492e08
mov edi, eax
test edi, edi
jle 0x500593
lea esi, [ebx + 0x79]
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
test eax, eax
jg 0x4fdfb2
cmp dword [esi], 0x13572469
jne 0x4fdf3f
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 0x500593
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, dword [esi + 4]
jl 0x500582
call fcn.004f94b4
xor edx, edx
push ebp
push 0x50057b
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [esi + 4]
mov eax, esi
call fcn.004bd650
test al, al
jne 0x500545
cmp byte [esi + 0xd], 0xd
jne 0x4fe034
mov ecx, dword [esi + 0x10]
lea eax, [ebx + 0x40]
mov edx, 0xa
call fcn.004befb4
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.00414008
call fcn.004036e4
jmp 0x500593
mov dl, 1
mov eax, dword [0x4bcdf0]
call fcn.00402e7c
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x50053e
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 0x4fe083
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 0x4fe0a3
mov edx, dword [esi + 8]
mov eax, ebx
call fcn.004f62d0
cmp byte [0x53b618], 0
jne case.0x4ff7b8.211
cmp byte [0x53b64c], 0
jne case.0x4ff7b8.211
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x30]
call fcn.00411b74
test eax, eax
jge case.0x4ff7b8.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 0x4fe0eb
xor edx, edx
call fcn.00411a08
mov al, byte [esi + 0xd]
cmp al, 0xa
jne 0x4ff4ba
xor eax, eax
mov al, byte [esi + 0xc]
cmp eax, 0xa6
jg 0x4fe167
je 0x4ff451
cmp eax, 0x91
jg 0x4fe13e
je 0x4fed19
sub eax, 0x65
je 0x4fe1f4
sub eax, 0x11
je 0x4fea1f
sub eax, 3
je 0x4fea55
sub eax, 0x13
je 0x4fea86
jmp case.0x4ff7b8.211
sub eax, 0x94
je 0x4fef7d
sub eax, 5
je 0x4fef86
dec eax
je 0x4ff0e7
sub eax, 2
je 0x4ff42e
jmp case.0x4ff7b8.211
add eax, 0xffffff4c
cmp eax, 0x1d
ja case.0x4ff7b8.211
jmp dword [eax*4 + 0x4fe17c]
mov eax, dword [0x53bdb4]
cmp dword [eax + 4], 0
jne 0x4fe20a
cmp dword [eax], 0
jbe case.0x4ff7b8.211
jmp 0x4fe210
jle case.0x4ff7b8.211
mov al, byte [0x500608]
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, 0x500614
mov edx, 0x500620
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, 0x50062c
call fcn.00404164
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4fe27a
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 0x4fe30b
mov edx, 0x500630
mov ecx, 6
mov eax, edi
call fcn.004099ac
test eax, eax
jne 0x4fe2d6
lea eax, [ebp - 0x2c]
call fcn.00403bf8
jmp 0x4fe2ff
mov edx, 0x500638
mov ecx, 6
mov eax, edi
call fcn.004099ac
test eax, eax
jne 0x4fe2f5
lea eax, [ebp - 0x2c]
call fcn.00403bf8
jmp 0x4fe2ff
lea edx, [ebp - 0x2c]
mov eax, edi
call fcn.00409a90
mov eax, edi
call fcn.00409840
inc eax
add edi, eax
jmp 0x4fe313
lea eax, [ebp - 0x2c]
call fcn.00403bf8
cmp dword [ebp - 0x2c], 0
jne 0x4fe324
lea edx, [ebp - 0x2c]
mov eax, dword [ebx + 0x34]
call fcn.004bead0
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
call fcn.004f34f8
cmp dword [ebp - 0x1c], 0
je 0x4fe342
lea eax, [ebx + 4]
mov edx, dword [ebp - 0x1c]
call fcn.00403c4c
jmp 0x4fe34d
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
call fcn.004f3568
mov eax, dword [esi + 4]
mov edx, edi
sub edx, esi
cmp eax, edx
jle 0x4fe363
cmp dword [ebx + 0x34], 0
jne 0x4fe363
mov eax, dword [edi]
mov dword [ebx + 0x34], eax
lea ecx, [ebp - 0x80]
mov eax, dword [ebx + 0x34]
xor edx, edx
call fcn.004bce74
mov edx, dword [ebp - 0x80]
lea eax, [ebx + 8]
call fcn.00403c4c
cmp byte [0x53b5dc], 0
je 0x4fe390
mov eax, ebx
mov edx, dword [ebx + 8]
call fcn.00403c4c
jmp 0x4fe39a
mov eax, ebx
mov edx, dword [ebx + 4]
call fcn.00403c4c
mov eax, dword [ebx]
call fcn.004f634c
mov edi, eax
test edi, edi
je 0x4fe3ca
cmp ebx, edi
je 0x4fe3ca
mov eax, edi
mov edx, 0x500648
call fcn.00403c4c
cmp byte [edi + 0x78], 2
je 0x4fe3ca
mov ecx, dword [edi + 0x28]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00500890
mov edx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.0049095c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x4fe408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
mov edx, dword [ebp - 0x14]
call fcn.004908f4
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 0x4fe71d
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.004f87a8
cmp edi, eax
jl 0x4fe46e
cmp byte [0x53b570], 0
jne 0x4fe444
mov eax, dword [0x53c188]
cmp byte [eax], 0
je 0x4fe45f
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.004f8298
call fcn.004036e4
call fcn.004036e4
jmp 0x500593
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.004fdd00
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x107a], 0
je 0x4fe4cf
mov edx, dword [ebx]
lea eax, [ebp - 0x84]
mov ecx, 0x500658
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 0x4fe4e8
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 [0x53b724]
cmp dword [eax], 0
je 0x4fe51c
mov eax, dword [0x53b724]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004ef4fc
mov eax, dword [0x53c178]
cmp dword [eax], 0
je 0x4fe537
mov eax, dword [0x53c178]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004cc9ac
lea eax, [ebp - 0x88]
mov edx, dword [0x53b780]
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.004ab30c
pop edx
call fcn.004ab284
mov eax, dword [ebx + 4]
call fcn.004fde60
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jge 0x4fe5ed
push dword [ebx + 4]
push 0x500668
push dword [ebx + 8]
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00403f38
mov edx, dword [ebp - 0x90]
mov eax, dword [0x568e64]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov byte [0x53b598], 1
jmp 0x4fe665
lea ecx, [ebp - 0x94]
mov edx, dword [ebp - 0x18]
mov eax, dword [0x568e64]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x94]
push eax
push dword [ebx + 4]
push 0x500668
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 0x4fe665
push dword [ebx + 4]
push 0x500668
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 [0x568e64]
mov edi, dword [eax]
call dword [edi + 0x20]
mov byte [0x53b598], 1
lea eax, [ebp - 0xa0]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x39c]
call fcn.00403db0
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [0x568e64]
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.004ab30c
pop edx
call fcn.004ab284
mov eax, dword [ebx]
call fcn.004dacec
push 0x500674
push dword [ebx + 0x10]
push 0x500680
lea eax, [ebp - 0xa8]
mov edx, 3
call fcn.00403f38
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebx]
mov eax, dword [0x53bdc4]
mov eax, dword [eax]
call fcn.004da584
cmp dword [ebx + 0x6c], 0x2480000
jle 0x4fe74e
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x1090], eax
mov ecx, dword [ebx + 0x1090]
mov edx, dword [ebx]
mov eax, dword [0x53b910]
mov eax, dword [eax]
call fcn.004e9528
lea edi, [esi + 0x3c]
mov eax, dword [edi]
mov dword [ebx + 0x11a8], eax
mov eax, dword [0x53b548]
sub eax, 0x230000
cmp eax, 0xfff4ec04
je 0x4fe77b
xor eax, eax
mov al, byte [0x53b510]
shl eax, 8
xor edx, edx
mov dl, byte [0x53b514]
shl edx, 0x10
or eax, edx
mov dword [ebp - 0x10], eax
jmp 0x4fe7f6
cmp byte [ebp - 0x31], 0
je 0x4fe78a
mov dword [ebp - 0x10], 0x10100
jmp 0x4fe7c9
xor eax, eax
mov al, byte [0x53b510]
shl eax, 8
xor edx, edx
mov dl, byte [0x53b514]
shl edx, 0x10
or eax, edx
mov dword [ebp - 0x10], eax
cmp byte [0x53b544], 0
je 0x4fe7b6
cmp byte [0x53fceb], 0xa3
jne 0x4fe7bf
cmp byte [0x53b56c], 0
je 0x4fe7c9
xor eax, eax
mov al, byte [0x53b4b4]
or dword [ebp - 0x10], eax
lea eax, [ebp - 0xac]
mov edx, 0x567e14
call fcn.00403e1c
mov edx, dword [ebp - 0xac]
mov eax, dword [ebx]
call fcn.00403f88
je 0x4fe7f6
mov eax, dword [0x53b8a4]
movzx eax, byte [eax]
shl eax, 0x18
or dword [ebp - 0x10], eax
mov edi, 0x53000000
cmp byte [0x53b4bc], 0
jne 0x4fe80e
cmp byte [0x53b4c4], 0
jne 0x4fe80e
inc edi
mov al, byte [ebp - 0x31]
xor al, 1
test al, al
je 0x4fe8c4
cmp byte [0x53b4c0], 0
je 0x4fe827
add edi, 0x20
cmp byte [0x53b4d4], 0
je 0x4fe836
add edi, 0x1000
cmp byte [0x53b4cc], 0
je 0x4fe842
add edi, 0x40
add edi, 2
cmp byte [0x53b4d0], 0
je 0x4fe851
add edi, 4
cmp byte [0x53b4c4], 0
je 0x4fe860
add edi, 0x80
cmp byte [0x53b61c], 0
je 0x4fe86f
add edi, 0x400
add edi, 0x800
cmp byte [0x568ea0], 0
je 0x4fe884
add edi, 0x2000
cmp byte [0x53b4d8], 0
jne 0x4fe893
add edi, 0x4000
cmp byte [0x53b4dc], 0
jne 0x4fe8a2
add edi, 0x8000
cmp byte [0x568ea1], 0
je 0x4fe8b1
add edi, 0x10000
mov eax, dword [0x53becc]
mov eax, dword [eax]
call eax
test eax, eax
je 0x4fe8c4
add edi, 0x80000
cmp byte [0x53b4e0], 0
je 0x4fe8d0
add edi, 0x10
cmp byte [0x53b4e0], 2
jne 0x4fe8df
add edi, 0x100
cmp byte [0x53b4e0], 3
jne 0x4fe8ee
add edi, 0x200
cmp byte [0x53b4e0], 4
jne 0x4fe8fd
add edi, 0x100000
movsx eax, word [0x53b4ac]
push eax
push edi
movzx eax, word [0x53b4f4]
shl eax, 0x10
movzx edx, word [0x53b4f0]
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.004f61e8
mov eax, dword [0x53b53c]
mov dword [ebx + 0x20], eax
mov eax, dword [0x53b540]
mov dword [ebx + 0x24], eax
mov al, byte [ebp - 0x31]
xor al, 1
test al, al
je 0x4fe961
mov eax, dword [0x53b594]
sub eax, dword [esi + 0x1c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x4fe961
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004fd998
mov eax, dword [esi + 0x14]
and eax, 0xffff0000
cmp eax, 0x53530000
jne 0x4fe9be
test byte [esi + 0x14], 0x40
je 0x4fe9a2
cmp byte [0x53b62c], 0
je 0x4fe99b
mov eax, dword [0x53b628]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004f6084
test eax, eax
je 0x4fe9a2
mov byte [ebx + 0x107c], 0xff
jmp 0x4fe9a2
mov byte [ebx + 0x107c], 0xff
test byte [esi + 0x14], 0x20
je 0x4fe9af
mov byte [ebx + 0x107b], 0xff
mov edx, 0x53b624
mov eax, 0x53b620
call fcn.004fcb68
cmp byte [ebx + 0x107a], 0
jne 0x4fe9cd
cmp byte [ebp - 0x31], 0
je 0x4fe9ea
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.004f8298
mov eax, ebx
call fcn.004e3884
cmp dword [ebx + 0x12c0], 0
je case.0x4ff7b8.211
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov cl, 1
mov edx, dword [ebp - 0x14]
call fcn.004bb614
mov byte [ebx + 0x77], 0xff
call fcn.004f7974
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 0
jmp case.0x4ff7b8.211
mov byte [ebx + 0x107b], 0xff
mov edx, 0x53b624
mov eax, 0x53b620
call fcn.004fcb68
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 0
cmp byte [ebx + 0x1079], 0
je case.0x4ff7b8.211
xor edx, edx
mov eax, ebx
call fcn.004fdcb0
jmp case.0x4ff7b8.211
mov eax, dword [0x53c158]
cmp dword [eax], 0
jne 0x4feab4
mov ecx, dword [0x53c158]
mov eax, dword [0x53be94]
mov eax, dword [eax]
mov edx, dword [0x4da6cc]
call fcn.00451d9c
mov eax, dword [0x53c158]
mov eax, dword [eax]
call fcn.004da8b4
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
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 0x500620
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, 0x50068c
call fcn.004ce9e4
mov eax, dword [0x53c158]
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x378]
call fcn.00403db0
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
mov edx, 0x50068c
call fcn.004ce9e4
lea edx, [ebp - 0xbc]
mov eax, dword [ebx + 0x28]
call fcn.004924e8
mov ecx, dword [ebp - 0xbc]
lea eax, [ebp - 0x1c]
mov edx, 0x500698
call fcn.004ce9e4
mov eax, dword [0x53c158]
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 [0x53c158]
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 [0x53c158]
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 [0x53be94]
mov eax, dword [eax]
call fcn.0045198c
mov eax, dword [0x53c158]
mov eax, dword [eax]
call fcn.0044ed40
mov edx, dword [0x53bff8]
mov edx, dword [edx]
lea eax, [ebp - 0x1c]
mov ecx, 0x5006a4
call fcn.00403ec4
mov eax, dword [ebp - 0x1c]
call fcn.004092c8
test al, al
je case.0x4ff7b8.211
mov eax, dword [0x53b9f8]
cmp dword [eax], 0
jne case.0x4ff7b8.211
mov dl, 1
mov eax, dword [0x410410]
call fcn.00402e7c
mov edx, dword [0x53bbd8]
mov dword [edx], eax
mov eax, dword [0x53bbd8]
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 0x4fecbd
mov eax, dword [0x53bff8]
push dword [eax]
push 0x5006bc
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x1c]
mov dl, byte [edx]
call fcn.00403da0
push dword [ebp - 0xc4]
push 0x5006cc
lea eax, [ebp - 0xc0]
mov edx, 4
call fcn.00403f38
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x53bbd8]
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 0x4fec62
mov edx, dword [0x53bff8]
mov edx, dword [edx]
lea eax, [ebp - 0xc8]
mov ecx, 0x5006dc
call fcn.00403ec4
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x53bbd8]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53b9f4]
mov dword [eax], 2
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4eba50]
call fcn.00418c1c
mov edx, dword [0x53b9f8]
mov dword [edx], eax
jmp case.0x4ff7b8.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 [0x53b780]
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 0x4fedaa
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x404]
call fcn.00403db0
jmp 0x4fee17
cmp eax, 2
jne 0x4fedc7
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x408]
call fcn.00403db0
jmp 0x4fee17
cmp eax, 3
jne 0x4fede4
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x468]
call fcn.00403db0
jmp 0x4fee17
cmp eax, 4
jne 0x4fee01
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x94c]
call fcn.00403db0
jmp 0x4fee17
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b780]
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 0x4feeb2
mov eax, dword [0x53be8c]
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x118]
call fcn.00403db0
lea eax, [ebp - 0xdc]
mov edx, 0x5006f8
call fcn.00403e80
mov edx, dword [ebp - 0xdc]
mov eax, dword [0x53be8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d8]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x568e88]
mov eax, edi
call fcn.004bfa94
jmp 0x4fef1f
mov eax, dword [0x53be8c]
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d8]
call fcn.00403db0
lea eax, [ebp - 0xe0]
mov edx, 0x5006f8
call fcn.00403e80
mov edx, dword [ebp - 0xe0]
mov eax, dword [0x53be8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e8]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x568e8c]
mov eax, edi
call fcn.004bfa94
mov eax, edi
call fcn.00402eac
mov eax, dword [0x53be6c]
cmp byte [eax], 0
jne 0x4fef39
cmp byte [0x53fc88], 0
je 0x4fef6d
mov eax, dword [0x53be6c]
mov byte [eax], 0
mov eax, dword [0x53be94]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53be8c]
mov eax, dword [eax]
call fcn.0044ed40
mov edx, 2
mov eax, 0x500704
call fcn.004ebab0
jmp case.0x4ff7b8.211
mov eax, dword [0x53b73c]
mov dword [eax], 1
jmp case.0x4ff7b8.211
mov byte [ebx + 0x76], 0
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x4fef95
mov eax, dword [ebp - 0xc]
call fcn.004f3914
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.00414008
mov byte [0x53b600], 1
jmp 0x4ff0c8
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.0049095c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x4ff004
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b8]
mov edx, dword [ebp - 0x14]
call fcn.004908f4
mov ebx, eax
mov eax, dword [ebp - 0x3c]
add dword [ebx + 4], eax
jmp 0x4ff03c
mov edx, dword [0x490740]
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.00490938
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.0049095c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x4ff089
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
mov edx, dword [ebp - 0x14]
call fcn.004908f4
mov ebx, eax
call fcn.0040a5e0
call fcn.004029d8
mov dword [ebx + 4], eax
jmp 0x4ff0c8
mov edx, dword [0x490740]
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.00490938
mov eax, dword [ebp - 0xc]
call fcn.00413ff8
mov ebx, eax
mov eax, dword [ebp - 0xc]
call fcn.00414014
cmp ebx, eax
jl 0x4fefae
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x11a8], eax
lea eax, [esi + 0x20]
mov esi, eax
lea eax, [esi + 0x10]
mov edx, 0x500714
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
je case.0x4ff7b8.211
lea eax, [esi + 0x24]
mov edx, 0x500714
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
je case.0x4ff7b8.211
mov eax, 0x568ed0
mov edx, esi
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x4ff17b
mov eax, 0x568ef4
lea edx, [esi + 0x24]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x4ff17b
mov eax, dword [0x53b608]
mov edx, dword [0x53b60c]
add eax, 0x1388
adc edx, 0
cmp edx, dword [0x53b540]
jne 0x4ff175
cmp eax, dword [0x53b53c]
jbe 0x4ff17b
jmp case.0x4ff7b8.211
jg case.0x4ff7b8.211
push esi
mov edi, 0x568ed0
mov ecx, 0xe
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x53b53c]
mov dword [0x53b608], eax
mov eax, dword [0x53b540]
mov dword [0x53b60c], eax
lea eax, [ebp - 0xec]
lea edx, [esi + 0x24]
call fcn.00403e1c
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0x24]
call fcn.004fddb0
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call fcn.004f34f8
lea eax, [ebp - 0xf0]
lea edx, [esi + 0x10]
call fcn.00403e1c
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0x20]
call fcn.004fddb0
cmp byte [0x53b4bc], 0
je 0x4ff3fa
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 [0x53b780]
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, 0x500728
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x560]
call fcn.00403db0
push dword [ebp - 0x110]
push dword [ebp - 0x20]
push 0x500738
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0x20]
call fcn.004f34f8
push dword [ebp - 0x114]
push 0x500680
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x564]
call fcn.00403db0
push dword [ebp - 0x118]
push dword [ebp - 0x24]
push 0x500738
push dword [ebp - 0x28]
push 0x500680
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 [0x53be8c]
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d4]
call fcn.00403db0
lea eax, [ebp - 0x11c]
mov edx, 0x5006f8
call fcn.00403e80
mov edx, dword [ebp - 0x11c]
mov eax, dword [0x53be8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e0]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x568e84]
mov eax, edi
call fcn.004bfa94
mov eax, dword [0x53be6c]
cmp byte [eax], 0
jne 0x4ff3b6
cmp byte [0x53fc88], 0
je 0x4ff3d8
mov eax, dword [0x53be6c]
mov byte [eax], 0
mov eax, dword [0x53be94]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53be8c]
mov eax, dword [eax]
call fcn.0044ed40
jmp 0x4ff3e3
mov eax, dword [0x53b73c]
mov dword [eax], 1
cmp byte [0x53b4ec], 0
je 0x4ff3f3
mov byte [0x53b5b0], 1
mov eax, edi
call fcn.00402eac
cmp byte [0x53b4c4], 0
je case.0x4ff7b8.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.004fd290
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 2
mov eax, dword [0x53bb64]
mov byte [eax], 1
jmp case.0x4ff7b8.211
mov eax, dword [0x53bde0]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004e08f4
jmp case.0x4ff7b8.211
mov byte [ebx + 0x107c], 0
jmp case.0x4ff7b8.211
mov eax, dword [0x53c178]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004cccf0
jmp case.0x4ff7b8.211
mov eax, dword [0x53c1fc]
mov byte [eax], 2
jmp case.0x4ff7b8.211
mov eax, dword [0x53c1fc]
mov byte [eax], 1
jmp case.0x4ff7b8.211
mov byte [ebx + 0x12d4], 1
jmp case.0x4ff7b8.211
mov byte [ebx + 0x12d4], 2
jmp case.0x4ff7b8.211
cmp al, 0xb
jne 0x4ff797
xor eax, eax
mov al, byte [esi + 0xc]
add eax, 0xffffff5a
cmp eax, 0x13
ja case.0x4ff7b8.211
jmp dword [eax*4 + 0x4ff4dc]
mov byte [ebx + 0x76], 0
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x6c], 0x2410271
jl case.0x4ff7b8.211
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x12a8], eax
jmp case.0x4ff7b8.211
cmp byte [ebx + 0x76], 1
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 4
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
cmp byte [esi + 0xc], 0xad
jne 0x4ff60e
mov byte [ebx + 0x76], 0
mov byte [ebx + 0x77], 0
mov eax, ebx
call fcn.004ceb6c
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 0x4ff5e2
mov ecx, 0x500658
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 0x4ff5fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
xor ecx, ecx
mov edx, dword [ebp - 0x14]
call fcn.004bb614
call fcn.004f7974
mov dl, 1
mov eax, ebx
call fcn.004fdcb0
jmp case.0x4ff7b8.211
cmp byte [ebx + 0x76], 6
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 2
jmp case.0x4ff7b8.211
call fcn.004f93ac
cmp dword [esi + 4], 0x20
jle 0x4ff68f
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 0x4ff686
lea eax, [ebx + 0x1098]
lea edx, [edi + 0x1c]
mov cl, 0x1f
call fcn.00402a68
cmp dword [esi + 4], 0x154
jl 0x4ff6a6
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 0x4ff6a6
mov byte [ebx + 0x1298], 0
jmp 0x4ff6a6
mov byte [ebx + 0x1098], 0
jmp 0x4ff6a6
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 0x4ff6ab
mov eax, dword [0x53b910]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e97c8
jmp case.0x4ff7b8.211
mov ecx, dword [ebx]
mov eax, dword [0x53be84]
mov eax, dword [eax]
mov edx, esi
call fcn.004dceb0
jmp case.0x4ff7b8.211
mov eax, dword [0x53bde0]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004e176c
jmp case.0x4ff7b8.211
mov eax, dword [0x53bde0]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e18cc
jmp case.0x4ff7b8.211
mov eax, dword [0x53bc50]
cmp dword [eax], 0
je case.0x4ff7b8.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 [0x53bc50]
mov eax, dword [eax]
mov edx, ebx
call fcn.004ed8dc
jmp case.0x4ff7b8.211
mov eax, dword [0x53c0e0]
cmp dword [eax], 0
je case.0x4ff7b8.211
cmp dword [esi + 4], 0xec
jl case.0x4ff7b8.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 [0x53c0e0]
mov eax, dword [eax]
mov edx, ebx
call fcn.004ed8dc
jmp case.0x4ff7b8.211
cmp al, 0xc
jne case.0x4ff7b8.211
xor eax, eax
mov al, byte [esi + 0xc]
add eax, 0xffffff2d
cmp eax, 0x20
ja case.0x4ff7b8.211
mov al, byte [eax + 0x4ff7bf]
jmp dword [eax*4 + 0x4ff7e0]
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
mov byte [ebx + 0x76], 2
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x14]
mov edx, dword [0x53baa4]
cmp eax, dword [edx]
jl case.0x4ff7b8.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x4ff85e
mov eax, dword [ebp - 0xc]
call fcn.004f3914
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 4]
lea edi, [esi + 0x20]
cmp dword [ebx + 0x6c], 0x2410271
jl 0x4ff875
mov eax, dword [edi]
mov dword [ebx + 0x12a8], eax
add edi, 4
cmp dword [edi], 0xfffffffe
jne 0x4ff883
xor eax, eax
call fcn.004cf49c
jmp 0x4ff8be
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x4ff8be
mov edx, dword [0x53c138]
mov edx, dword [edx + 6]
cmp byte [edx + eax], 0
je 0x4ff8b4
mov edx, dword [0x53c138]
mov edx, dword [edx + 6]
mov byte [edx + eax], 0
mov edx, dword [0x53b938]
mov edx, dword [edx]
xchg edx, eax
call fcn.004e2154
add edi, 4
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x4ff88a
mov eax, dword [0x53b548]
add eax, 0x5312555
cmp eax, 0x5491159
je 0x4ff8e3
mov eax, 0x500744
call fcn.004f3218
mov eax, 0x2000
call fcn.004089d4
mov eax, dword [0x53b938]
mov eax, dword [eax]
call fcn.004e214c
test eax, eax
jle case.0x4ff7b8.211
mov eax, dword [0x53c138]
mov byte [eax + 1], 1
jmp case.0x4ff7b8.211
mov eax, dword [0x53bdb4]
cmp dword [eax + 4], 0
jne 0x4ff91b
cmp dword [eax], 0
jbe case.0x4ff7b8.211
jmp 0x4ff921
jle case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c138]
cmp eax, dword [edx + 0xe]
jne case.0x4ff7b8.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x4ff942
mov eax, dword [ebp - 0xc]
call fcn.004f3914
mov eax, dword [ebp - 0xc]
call fcn.004cf4bc
mov eax, dword [0x53babc]
xor edx, edx
mov dword [eax], edx
mov byte [ebx + 0x76], 0
jmp case.0x4ff7b8.211
mov eax, dword [0x53bdb4]
cmp dword [eax + 4], 0
jne 0x4ff972
cmp dword [eax], 0
jbe case.0x4ff7b8.211
jmp 0x4ff978
jle case.0x4ff7b8.211
cmp byte [0x53b578], 3
jne case.0x4ff7b8.211
cmp dword [ebx + 0x12bc], 0
je case.0x4ff7b8.211
lea edx, [ebp - 0x134]
mov eax, dword [0x53bfdc]
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 0x4ff9ee
cmp dword [ebp - 0x6c], 0
jne 0x4ff9ee
cmp dword [ebp - 0x68], 0
jne 0x4ff9ee
cmp dword [ebp - 0x64], 0
je case.0x4ff7b8.211
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
jne 0x4ffa20
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 0x4ffa8c
cmp byte [esi + 0xc], 0xec
jne 0x4ffa31
mov edi, dword [esi + 0x14]
jmp 0x4ffa33
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 0x4ffaa7
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 [0x53c22c]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043352c
mov edx, dword [0x53c218]
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.0x4ff7b8.211
mov eax, dword [0x53bdb4]
cmp dword [eax + 4], 0
jne 0x4ffafc
cmp dword [eax], 0
jbe case.0x4ff7b8.211
jmp 0x4ffb02
jle case.0x4ff7b8.211
cmp byte [0x53b578], 3
jne case.0x4ff7b8.211
cmp dword [ebx + 0x12bc], 0
je case.0x4ff7b8.211
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x47cf1c]
call fcn.00403024
test al, al
jne 0x4ffb4e
mov eax, dword [ebx + 0x12bc]
call fcn.00402eac
mov dl, 1
mov eax, dword [0x47cf1c]
call fcn.0047d1cc
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 [0x53c22c]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12c0]
call fcn.0043352c
mov edx, dword [0x53c218]
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.0x4ff7b8.211
mov eax, dword [0x53bdb4]
cmp dword [eax + 4], 0
jne 0x4ffbbe
cmp dword [eax], 0
jbe case.0x4ff7b8.211
jmp 0x4ffbc4
jle case.0x4ff7b8.211
cmp dword [0x568e54], 0
je 0x4ffc03
cmp ebx, dword [0x568e54]
je 0x4ffc03
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x568e54]
mov eax, dword [ebp - 4]
call fcn.004f8298
mov eax, dword [0x568e54]
call fcn.004f3228
jmp case.0x4ff7b8.211
cmp byte [0x53b578], 0
je case.0x4ff7b8.211
mov eax, dword [esi + 0x10]
cmp eax, 0xffffffff
je 0x4ffc36
mov edx, eax
and edx, 0xffff
mov ecx, dword [0x53c048]
mov dword [ecx], edx
shr eax, 0x10
mov edx, dword [0x53c048]
mov dword [edx + 4], eax
jmp 0x4ffc41
mov eax, dword [0x53c048]
mov dword [eax], 0xffffffff
cmp byte [esi + 0xc], 0xeb
jne 0x4ffc4c
mov edi, dword [esi + 0x18]
jmp 0x4ffc4e
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 0x4ffc75
cmp dword [ebx + 0x6c], 0x247007e
jge 0x4ffc9e
mov eax, dword [0x53baf0]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov edx, dword [edx + 0x24]
mov ecx, dword [0x53baf0]
mov dword [ecx], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov dword [edx + 0x24], eax
jmp 0x4ffccf
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 [0x53baf0]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.004bf724
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.004625f8
mov eax, dword [0x53baf0]
mov eax, dword [eax]
xor edx, edx
call fcn.00414008
cmp byte [0x53b578], 3
jne 0x4ffdf7
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
jne 0x4ffd2a
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 [0x53baf0]
mov edx, dword [edx]
mov eax, dword [ebx + 0x12bc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53b53c]
mov edx, dword [0x53b540]
sub eax, dword [0x53b644]
sbb edx, dword [0x53b648]
cmp edx, 0
jne 0x4ffd63
cmp eax, 0xbb8
jbe 0x4ffda7
jmp 0x4ffd65
jle 0x4ffda7
mov eax, dword [0x53c048]
cmp dword [eax], 0xffffffff
je 0x4ffda7
mov eax, dword [0x53ba58]
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 [0x53c048]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53c048]
mov edx, dword [edx]
call fcn.0041c75c
mov eax, ebx
call fcn.004e34f4
test al, al
je 0x4ffdd7
mov eax, dword [ebx + 0x12bc]
mov edx, dword [0x41aaf4]
call fcn.00403024
test al, al
je 0x4ffdd7
mov eax, dword [0x53bfdc]
mov eax, dword [eax]
mov edx, ebx
call fcn.004e352c
jmp 0x4ffde7
mov eax, dword [0x53b958]
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 0x4ffe9d
mov edx, dword [0x53baf0]
mov edx, dword [edx]
mov eax, dword [0x53bea8]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53b53c]
mov edx, dword [0x53b540]
sub eax, dword [0x53b644]
sbb edx, dword [0x53b648]
cmp edx, 0
jne 0x4ffe31
cmp eax, 0xbb8
jbe 0x4ffe76
jmp 0x4ffe33
jle 0x4ffe76
mov eax, dword [0x53c048]
cmp dword [eax], 0xffffffff
je 0x4ffe76
mov eax, dword [0x53ba58]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x128]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x53bea8]
mov eax, dword [eax]
call fcn.00421254
mov ecx, dword [0x53c048]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53c048]
mov edx, dword [edx]
call fcn.0041c75c
mov eax, dword [0x53ba58]
mov eax, dword [eax]
call fcn.004e6d78
mov eax, dword [0x53ba58]
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.0x4ff7b8.211
mov eax, dword [0x53b724]
cmp dword [eax], 0
je case.0x4ff7b8.211
mov eax, dword [0x53b724]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004ef028
jmp case.0x4ff7b8.211
cmp byte [0x53b544], 0
je 0x4ffee8
cmp dword [0x53fca4], 0x11332223
je case.0x4ff7b8.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x4ffef7
mov eax, dword [ebp - 0xc]
call fcn.004f3914
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.004fc958
jmp case.0x4ff7b8.211
mov edx, esi
mov eax, ebx
call fcn.004fc9bc
jmp case.0x4ff7b8.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x4fff23
mov eax, dword [ebp - 0xc]
call fcn.004f3914
mov eax, dword [0x53c178]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004cccf0
jmp case.0x4ff7b8.211
mov eax, dword [0x53be68]
cmp byte [eax], 0
jne case.0x4ff7b8.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 [0x53b780]
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 0x500005
lea eax, [ebp - 0x14c]
mov edx, dword [0x53b780]
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 0x500059
lea eax, [ebp - 0x154]
mov edx, dword [0x53b780]
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 0x5000aa
lea eax, [ebp - 0x15c]
mov edx, dword [0x53b780]
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 0x5000fb
lea eax, [ebp - 0x164]
mov edx, dword [0x53b780]
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 0x50014c
lea eax, [ebp - 0x16c]
mov edx, dword [0x53b780]
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 0x50019d
lea eax, [ebp - 0x174]
mov edx, dword [0x53b780]
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 [0x53be8c]
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 [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x9d4]
call fcn.00403db0
lea eax, [ebp - 0x17c]
mov edx, 0x5006f8
call fcn.00403e80
mov edx, dword [ebp - 0x17c]
mov eax, dword [0x53be8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e0]
call fcn.00433cf8
mov ecx, 0x20000
mov edx, dword [0x568e84]
mov eax, edi
call fcn.004bfa94
mov eax, dword [0x53be6c]
cmp byte [eax], 0
jne 0x50021d
cmp byte [0x53fc88], 0
je 0x50023f
mov eax, dword [0x53be6c]
mov byte [eax], 0
mov eax, dword [0x53be94]
mov eax, dword [eax]
call fcn.0045189c
mov eax, dword [0x53be8c]
mov eax, dword [eax]
call fcn.0044ed40
jmp 0x50024a
mov eax, dword [0x53b73c]
mov dword [eax], 1
cmp byte [0x53b4e8], 0
je 0x50025a
mov byte [0x53b5b0], 1
mov eax, edi
call fcn.00402eac
jmp case.0x4ff7b8.211
cmp dword [0x568e54], 0
je 0x5002a5
cmp ebx, dword [0x568e54]
je 0x5002a5
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x568e54]
mov eax, dword [ebp - 4]
call fcn.004f8298
mov eax, dword [0x568e54]
call fcn.004f3228
jmp case.0x4ff7b8.211
cmp dword [ebx + 0x12c8], 0
jne 0x5002c0
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x5002d3
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.0x4ff7b8.211
mov eax, dword [ebx + 0x12c8]
mov esi, dword [eax + 4]
jmp 0x4ffc03
cmp byte [0x53b578], 3
jne case.0x4ff7b8.211
cmp dword [ebx + 0x12bc], 0
je case.0x4ff7b8.211
cmp dword [ebx + 0x12c8], 0
jne 0x500334
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x500347
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.0x4ff7b8.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 0x4ffb1c
cmp byte [esi + 0xc], 0xec
je 0x4ff992
jmp case.0x4ff7b8.211
cmp dword [ebx + 0x12c8], 0
jne 0x5003c3
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov dword [ebx + 0x12c8], eax
cmp dword [esi + 0x14], 0
jne 0x5003d6
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.0x4ff7b8.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.0x4ff7b8.220
cmp byte [0x53b544], 0
je 0x50043c
cmp dword [0x53fca4], 0x11332222
je case.0x4ff7b8.211
mov eax, dword [0x53be64]
cmp byte [eax], 1
jne case.0x4ff7b8.211
cmp dword [esi + 0x14], 0
jne 0x5004db
cmp dword [ebx + 0x12d0], 0
jne 0x5004db
mov eax, dword [0x53bff8]
push dword [eax]
push 0x50075c
push dword [ebx]
mov eax, dword [0x53c038]
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.004bd6d0
mov dword [ebx + 0x12d0], eax
mov eax, dword [esi + 0x18]
cdq
push edx
push eax
mov eax, dword [ebx + 0x12d0]
call fcn.00490c4c
push 0
push 0
mov eax, dword [ebx + 0x12d0]
call fcn.00490bec
cmp dword [ebx + 0x12d0], 0
je case.0x4ff7b8.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.00490bc8
push edx
push eax
mov eax, dword [esi + 0x18]
cdq
cmp edx, dword [esp + 4]
jne 0x500512
cmp eax, dword [esp]
pop edx
pop eax
jne case.0x4ff7b8.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 0x50054f
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 0x500593
mov eax, dword [0x53bd5c]
cmp dword [eax], 0x17ec04
je 0x500575
mov eax, 0x500770
call fcn.004f3218
jmp 0x50057a
call fcn.004f94c4
ret
mov eax, dword [ebx + 0x2c]
call fcn.00413ff8
cmp eax, 0x20
je 0x4fdf3f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x500600
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