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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x23
push 0
push 0
dec ecx
jne 0x4ffe8d
push ecx
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 0x501a71
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ecx
call fcn.004f8c90
mov ebx, eax
test ebx, ebx
je 0x5019dc
mov eax, dword [0x53b684]
mov dword [ebx + 0x18], eax
mov eax, dword [0x53b688]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x2c]
call fcn.004142dc
cmp eax, 8
jge 0x4ffee6
mov eax, 0x20
jmp 0x4fff06
mov edi, dword [ebx + 0x2c]
mov esi, dword [edi + 4]
mov eax, edi
call fcn.004142dc
push eax
mov eax, dword [esi + 4]
pop edx
sub eax, edx
cmp eax, 0x1000
jle 0x4fff06
mov eax, 0x1000
lea edx, [ebx + 0x79]
mov ecx, dword [ebx + 0x28]
xchg ecx, eax
call fcn.004b2068
mov edi, eax
test edi, edi
jle 0x5019dc
lea esi, [ebx + 0x79]
mov eax, dword [ebx + 0x2c]
call fcn.004142dc
test eax, eax
jg 0x4fff33
cmp dword [esi], 0x13572469
jne 0x4ffec0
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.004142dc
test eax, eax
jle 0x5019dc
mov eax, dword [ebx + 0x2c]
call fcn.004142dc
cmp eax, dword [esi + 4]
jl 0x5019cb
call fcn.004fbc04
xor edx, edx
push ebp
push 0x5019c4
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [esi + 4]
mov eax, esi
call fcn.004666e0
test al, al
jne 0x5019a7
cmp byte [esi + 0xd], 0xd
jne 0x4fffb5
mov ecx, dword [esi + 0x10]
lea eax, [ebx + 0x40]
mov edx, 0xa
call fcn.00467f5c
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.004142ec
call fcn.0040373c
jmp 0x5019dc
mov dl, 1
mov eax, dword [0x465de0]
call fcn.00402ed4
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x5019a0
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, dword [ebx + 0x2c]
mov eax, esi
call fcn.004142dc
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.004142f8
cmp eax, 0x4000
jle 0x500004
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.004142ec
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 4]
cmp byte [esi + 0xe], 0
je 0x500024
mov edx, dword [esi + 8]
mov eax, ebx
call fcn.004f8c44
cmp byte [0x53b724], 0
jne case.0x500fd4.211
cmp byte [0x53b744], 0
jne case.0x500fd4.211
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x30]
call fcn.00411e1c
test eax, eax
jge case.0x500fd4.211
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x30]
call fcn.00411c64
mov eax, dword [ebx + 0x30]
cmp dword [eax + 8], 0x64
jle 0x50006c
xor edx, edx
call fcn.00411cb0
cmp byte [esi + 0xd], 0xa
jne 0x500dd8
xor eax, eax
mov al, byte [esi + 0xc]
cmp eax, 0xbb
jg 0x5000d7
je case.0x5000e5.189
cmp eax, 0x8c
jg 0x5000b5
je 0x5007dd
sub eax, 0x65
je 0x50014c
sub eax, 0x11
je 0x500791
sub eax, 3
je 0x5007ac
jmp case.0x500fd4.211
sub eax, 0x91
je 0x500bf0
sub eax, 3
je 0x500d64
sub eax, 8
je 0x500d6d
jmp case.0x500fd4.211
add eax, 0xffffff43
cmp eax, 0x17
ja case.0x500fd4.211
jmp dword [eax*4 + 0x5000ec]
mov eax, dword [0x53bdcc]
cmp dword [eax + 4], 0
jne 0x500162
cmp dword [eax], 0
jbe case.0x500fd4.211
jmp 0x500168
jle case.0x500fd4.211
mov al, byte [0x501a84]
push eax
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
lea edx, [esi + 0x20]
mov ecx, 0x400
call fcn.00403e9c
mov eax, dword [ebp - 0x80]
mov ecx, 0x501a90
mov edx, 0x501a9c
call fcn.0040d838
mov edx, dword [ebp - 0x7c]
lea eax, [ebx + 4]
call fcn.00403cc0
call fcn.0040a878
fsub qword [0x568084]
fstp qword [ebx + 0x20]
wait
lea ecx, [ebp - 0x84]
mov eax, dword [ebx + 0x34]
xor edx, edx
call fcn.00466064
mov edx, dword [ebp - 0x84]
lea eax, [ebx + 8]
call fcn.00403cc0
lea edx, [ebp - 0x88]
lea eax, [esi + 0x40]
call fcn.00409cc8
mov edx, dword [ebp - 0x88]
lea eax, [ebx + 0xc]
call fcn.00403cc0
mov edx, dword [ebx + 0xc]
mov eax, 0x501aa8
call fcn.004041d8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x500205
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.004040f4
lea eax, [ebx + 0xc]
mov ecx, 0x3e8
mov edx, dword [ebp - 0x14]
call fcn.00404134
lea edi, [esi + 0x40]
mov eax, edi
call fcn.00409a78
inc eax
add edi, eax
mov eax, dword [esi + 4]
mov edx, edi
sub edx, esi
cmp eax, edx
jle 0x500249
mov eax, edi
call fcn.00409a78
lea edx, [ebp - 0x38]
mov eax, dword [ebx + 4]
call fcn.004ffda4
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
call fcn.004f6dd0
cmp dword [ebp - 0x1c], 0
je 0x500272
lea eax, [ebx + 4]
mov edx, dword [ebp - 0x1c]
call fcn.00403cc0
jmp 0x50027d
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x38]
call fcn.004f6e40
cmp byte [0x53b6f4], 0
je 0x500292
mov eax, ebx
mov edx, dword [ebx + 8]
call fcn.00403cc0
jmp 0x50029c
mov eax, ebx
mov edx, dword [ebx + 4]
call fcn.00403cc0
mov eax, dword [ebx]
call fcn.004f8cc0
mov edi, eax
test edi, edi
je 0x5002ee
cmp ebx, edi
je 0x5002ee
fld qword [edi + 0x20]
fcomp dword [0x501aac]
fnstsw ax
sahf
jbe 0x5002cf
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebx + 0x24], eax
xor eax, eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
mov eax, edi
mov edx, 0x501ab8
call fcn.00403cc0
cmp byte [edi + 0x78], 2
je 0x5002ee
mov ecx, dword [edi + 0x28]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00501c30
mov edx, dword [ebx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b0]
call fcn.004b3bf0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x50032c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b0]
mov edx, dword [ebp - 0x14]
call fcn.004b3b88
mov edi, eax
lea eax, [ebp - 0x3c]
mov edx, dword [edi + 4]
call fcn.00403d04
mov byte [ebx + 0x107a], 0xff
cmp byte [ebx + 0x78], 1
je 0x50060c
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.004fb028
cmp edi, eax
jl 0x500392
cmp byte [0x53b6a8], 0
jne 0x500368
mov eax, dword [0x53c144]
cmp byte [eax], 0
je 0x500383
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.004fab18
call fcn.0040373c
call fcn.0040373c
jmp 0x5019dc
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.004ffc50
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x107a], 0
je 0x5003ef
mov edx, dword [ebx]
lea eax, [ebp - 0x8c]
mov ecx, 0x501ac8
call fcn.00403f38
mov ecx, dword [ebp - 0x8c]
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 0x500408
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 [0x53b7f0]
cmp dword [eax], 0
je 0x50043c
mov eax, dword [0x53b7f0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004f1c90
mov eax, dword [0x53c134]
cmp dword [eax], 0
je 0x500457
mov eax, dword [0x53c134]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004d7a0c
lea eax, [ebp - 0x90]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x280]
call fcn.00403e24
lea eax, [ebp - 0x90]
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 - 0x94]
call fcn.00409228
mov edx, dword [ebp - 0x94]
pop eax
call fcn.00403ef4
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
mov eax, dword [eax + 0x1f0]
mov edx, 2
call fcn.004724bc
pop edx
call fcn.00472434
mov eax, dword [ebx + 4]
call fcn.004ffd00
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jge 0x50050d
push dword [ebx + 4]
push 0x501ad8
push dword [ebx + 8]
lea eax, [ebp - 0x98]
mov edx, 3
call fcn.00403fac
mov edx, dword [ebp - 0x98]
mov eax, dword [0x56802c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov byte [0x53b6c8], 1
jmp 0x500585
lea ecx, [ebp - 0x9c]
mov edx, dword [ebp - 0x18]
mov eax, dword [0x56802c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x9c]
push eax
push dword [ebx + 4]
push 0x501ad8
push dword [ebx + 8]
lea eax, [ebp - 0xa0]
mov edx, 3
call fcn.00403fac
mov edx, dword [ebp - 0xa0]
pop eax
call fcn.00403ffc
je 0x500585
push dword [ebx + 4]
push 0x501ad8
push dword [ebx + 8]
lea eax, [ebp - 0xa4]
mov edx, 3
call fcn.00403fac
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x18]
mov eax, dword [0x56802c]
mov edi, dword [eax]
call dword [edi + 0x20]
mov byte [0x53b6c8], 1
lea eax, [ebp - 0xa8]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x39c]
call fcn.00403e24
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [0x56802c]
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 - 0xac]
call fcn.00409228
mov edx, dword [ebp - 0xac]
pop eax
call fcn.00403ef4
mov eax, dword [ebp - 0xa8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
mov eax, dword [eax + 0x1f0]
mov edx, 4
call fcn.004724bc
pop edx
call fcn.00472434
mov eax, dword [ebx]
call fcn.004e65c0
mov edi, 0x53000000
mov eax, dword [0x53c270]
cmp dword [eax + 4], 0
jne 0x500623
cmp dword [eax], 0
jae 0x50062b
jmp 0x500625
jge 0x50062b
add edi, 0x800
cmp byte [0x53b66c], 0
jne 0x50063a
add edi, 0x4000
mov eax, dword [0x53bedc]
mov eax, dword [eax]
call eax
test eax, eax
je 0x50064d
add edi, 0x80000
mov eax, dword [0x568068]
cmp dword [eax + 8], 1
jle 0x5006a1
mov eax, dword [0x568068]
mov eax, dword [eax + 8]
call fcn.00402bac
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
call fcn.004029d8
mov edx, eax
mov eax, dword [0x568068]
call fcn.00411dc0
push eax
movsx eax, word [0x53b660]
push eax
push edi
push 0x41100d7
xor ecx, ecx
mov edx, 0x97
mov eax, ebx
call fcn.004f8b8c
jmp 0x5006c3
mov eax, dword [0x53b6fc]
push eax
movsx eax, word [0x53b660]
push eax
push edi
push 0x41100d7
xor ecx, ecx
mov edx, 0x97
mov eax, ebx
call fcn.004f8b8c
cmp dword [ebx + 0x6c], 0x3500000
jl 0x5006e8
mov eax, dword [0x53b6c4]
sub eax, dword [esi + 0x1c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x5006e8
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ffa2c
mov eax, dword [esi + 0x14]
mov edx, eax
and edx, 0xffff0000
cmp edx, 0x53530000
jne 0x500736
test al, 0x10
je 0x500736
mov eax, dword [0x53c270]
cmp dword [eax + 4], 0
jne 0x500711
cmp dword [eax], 0
jbe 0x50072f
jmp 0x500713
jle 0x50072f
mov eax, dword [0x53b728]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004f8a28
test eax, eax
je 0x500736
mov byte [ebx + 0x107b], 0xff
jmp 0x500736
mov byte [ebx + 0x107b], 0xff
cmp byte [ebx + 0x107a], 0
je 0x50075c
push 1
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
mov ecx, 0x89
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004fab18
mov eax, ebx
call fcn.004eb914
cmp dword [ebx + 0x1088], 0
je case.0x500fd4.211
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov cl, 1
mov edx, dword [ebp - 0x14]
call fcn.004af460
mov byte [ebx + 0x77], 0xff
call fcn.004fa1ec
jmp case.0x500fd4.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c100]
cmp eax, dword [edx + 0xe]
jne case.0x500fd4.211
mov byte [ebx + 0x76], 0
jmp case.0x500fd4.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c100]
cmp eax, dword [edx + 0xe]
jne case.0x500fd4.211
mov byte [ebx + 0x76], 0
cmp byte [ebx + 0x1079], 0
je case.0x500fd4.211
xor edx, edx
mov eax, ebx
call fcn.004ffc00
jmp case.0x500fd4.211
cmp byte [0x53b670], 0
jne case.0x500fd4.211
mov eax, dword [0x53c118]
cmp dword [eax], 0
jne 0x500818
mov ecx, dword [0x53c118]
mov eax, dword [0x53bea8]
mov eax, dword [eax]
mov edx, dword [0x4e5fe8]
call fcn.004523ec
mov eax, dword [0x53c118]
mov eax, dword [eax]
call fcn.004e61bc
mov edx, dword [0x53bfe4]
mov edx, dword [edx]
lea eax, [ebp - 0xb4]
mov ecx, 0x501ae4
call fcn.00403f38
mov eax, dword [ebp - 0xb4]
call fcn.00409500
test al, al
je 0x50087c
mov edx, dword [0x53bfe4]
mov edx, dword [edx]
lea eax, [ebp - 0xbc]
mov ecx, 0x501ae4
call fcn.00403f38
mov edx, dword [ebp - 0xbc]
lea eax, [ebp - 0xb8]
call fcn.00404434
mov eax, dword [ebp - 0xb8]
mov dx, 2
call fcn.00466760
mov dword [ebp - 0x40], eax
jmp 0x5008b7
mov edx, dword [0x53bfe4]
mov edx, dword [edx]
lea eax, [ebp - 0xc4]
mov ecx, 0x501ae4
call fcn.00403f38
mov edx, dword [ebp - 0xc4]
lea eax, [ebp - 0xc0]
call fcn.00404434
mov eax, dword [ebp - 0xc0]
mov dx, 0xffff
call fcn.00466760
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x5008cf
mov eax, dword [ebp - 0x40]
call fcn.00464a08
push edx
push eax
mov eax, dword [ebp - 0x40]
call fcn.00464a7c
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x374]
call fcn.00403e24
call fcn.0040a818
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xcc]
call fcn.0040b474
push dword [ebp - 0xcc]
push 0x501a9c
call fcn.0040a844
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xd0]
call fcn.0040b48c
push dword [ebp - 0xd0]
lea eax, [ebp - 0xc8]
mov edx, 3
call fcn.00403fac
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0x1c]
mov edx, 0x501af8
call fcn.004d9b70
mov eax, dword [0x53c118]
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]
cmp dword [ebp - 0x40], 0
je 0x500996
mov eax, dword [ebp - 0x1c]
call fcn.00403eec
push eax
lea eax, [ebp - 0x1c]
call fcn.004040bc
mov edx, eax
mov eax, dword [ebp - 0x40]
pop ecx
mov edi, dword [eax]
call dword [edi + 8]
mov ecx, 2
mov edx, 0x501b04
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 8]
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x378]
call fcn.00403e24
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
mov edx, 0x501af8
call fcn.004d9b70
lea edx, [ebp - 0xd4]
mov eax, dword [ebx + 0x28]
call fcn.004b1748
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0x1c]
mov edx, 0x501b10
call fcn.004d9b70
mov eax, dword [0x53c118]
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]
cmp dword [ebp - 0x40], 0
je 0x500a2b
mov eax, dword [ebp - 0x1c]
call fcn.00403eec
push eax
lea eax, [ebp - 0x1c]
call fcn.004040bc
mov edx, eax
mov eax, dword [ebp - 0x40]
pop ecx
mov edi, dword [eax]
call dword [edi + 8]
mov ecx, 2
mov edx, 0x501b04
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 8]
lea edx, [ebp - 0x1c]
lea eax, [esi + 0x20]
call fcn.00409cc8
mov eax, dword [0x53c118]
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]
cmp dword [ebp - 0x40], 0
je 0x500a85
mov eax, dword [ebp - 0x1c]
call fcn.00403eec
push eax
lea eax, [ebp - 0x1c]
call fcn.004040bc
mov edx, eax
mov eax, dword [ebp - 0x40]
pop ecx
mov esi, dword [eax]
call dword [esi + 8]
mov ecx, 2
mov edx, 0x501b04
mov eax, dword [ebp - 0x40]
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [0x53c118]
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]
cmp dword [ebp - 0x40], 0
je 0x500abf
mov ecx, 2
mov edx, 0x501b04
mov eax, dword [ebp - 0x40]
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [ebp - 0x40]
call fcn.00402f04
mov eax, dword [0x53bea8]
mov eax, dword [eax]
call fcn.00451fdc
mov eax, dword [0x53c118]
mov eax, dword [eax]
call fcn.0044f390
mov edx, dword [0x53bfe4]
mov edx, dword [edx]
lea eax, [ebp - 0x1c]
mov ecx, 0x501b1c
call fcn.00403f38
mov eax, dword [ebp - 0x1c]
call fcn.00409500
test al, al
je case.0x500fd4.211
mov eax, dword [0x53ba7c]
cmp dword [eax], 0
jne case.0x500fd4.211
mov dl, 1
mov eax, dword [0x4106b8]
call fcn.00402ed4
mov edx, dword [0x53bc2c]
mov dword [edx], eax
mov eax, dword [0x53bc2c]
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.00403d04
jmp 0x500b94
mov eax, dword [0x53bfe4]
push dword [eax]
push 0x501b34
lea eax, [ebp - 0xdc]
mov edx, dword [ebp - 0x1c]
mov dl, byte [edx]
call fcn.00403e14
push dword [ebp - 0xdc]
push 0x501b44
lea eax, [ebp - 0xd8]
mov edx, 4
call fcn.00403fac
mov edx, dword [ebp - 0xd8]
mov eax, dword [0x53bc2c]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, 1
call fcn.00404134
mov eax, dword [ebp - 0x1c]
call fcn.00403eec
test eax, eax
jg 0x500b39
mov edx, dword [0x53bfe4]
mov edx, dword [edx]
lea eax, [ebp - 0xe0]
mov ecx, 0x501b54
call fcn.00403f38
mov edx, dword [ebp - 0xe0]
mov eax, dword [0x53bc2c]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53ba78]
mov dword [eax], 2
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d41f0]
call fcn.00418f00
mov edx, dword [0x53ba7c]
mov dword [edx], eax
jmp case.0x500fd4.211
call fcn.0040a818
fstp qword [ebp - 0xe8]
wait
call fcn.0040a844
fadd qword [ebp - 0xe8]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1c]
call fcn.0040b4a4
mov dl, 1
mov eax, dword [0x4106b8]
call fcn.00402ed4
mov edi, eax
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0xec]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x3bc]
call fcn.00403e24
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
call fcn.00403f38
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 0x500c81
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x404]
call fcn.00403e24
jmp 0x500cb4
cmp eax, 2
jne 0x500c9e
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x408]
call fcn.00403e24
jmp 0x500cb4
lea eax, [ebp - 0x1c]
mov edx, dword [0x53b848]
mov edx, dword [edx]
mov edx, dword [edx + 0x468]
call fcn.00403e24
lea edx, [ebp - 0xf0]
lea eax, [esi + 0x20]
call fcn.00409cc8
mov edx, dword [ebp - 0xf0]
lea eax, [ebp - 0x1c]
call fcn.00403ef4
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x53bea0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x208]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov ecx, 0x20000
mov edx, dword [0x56803c]
mov eax, edi
call fcn.0046888c
mov eax, edi
call fcn.00402f04
mov eax, dword [0x53be7c]
cmp byte [eax], 0
jne 0x500d20
cmp byte [0x53ee5c], 0
je 0x500d54
mov eax, dword [0x53be7c]
mov byte [eax], 0
mov eax, dword [0x53bea8]
mov eax, dword [eax]
call fcn.00451eec
mov eax, dword [0x53bea0]
mov eax, dword [eax]
call fcn.0044f390
mov edx, 2
mov eax, 0x501b70
call fcn.004d4250
jmp case.0x500fd4.211
mov eax, dword [0x53b808]
mov dword [eax], 1
jmp case.0x500fd4.211
mov byte [ebx + 0x76], 0
jmp case.0x500fd4.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c100]
cmp eax, dword [edx + 0xe]
jne case.0x500fd4.211
mov byte [ebx + 0x76], 2
mov eax, dword [0x53bbc4]
mov byte [eax], 1
jmp case.0x500fd4.211
mov eax, dword [0x53c134]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004d7d50
jmp case.0x500fd4.211
mov eax, dword [0x53c1a8]
mov byte [eax], 2
jmp case.0x500fd4.211
mov eax, dword [0x53c1a8]
mov byte [eax], 1
jmp case.0x500fd4.211
mov byte [ebx + 0x109c], 1
jmp case.0x500fd4.211
mov byte [ebx + 0x109c], 2
jmp case.0x500fd4.211
mov al, byte [esi + 0xd]
cmp al, 0xb
jne 0x500fb3
mov al, byte [esi + 0xc]
xor edx, edx
mov dl, al
add edx, 0xffffff5a
cmp edx, 0x2a
ja case.0x500fd4.211
mov dl, byte [edx + 0x500e06]
jmp dword [edx*4 + 0x500e31]
mov byte [ebx + 0x76], 0
jmp case.0x500fd4.211
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x6c], 0x2410271
jl case.0x500fd4.211
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1080], eax
jmp case.0x500fd4.211
cmp byte [ebx + 0x76], 1
jne case.0x500fd4.211
mov byte [ebx + 0x76], 4
jmp case.0x500fd4.211
mov edx, dword [esi + 0x10]
mov ecx, dword [0x53c100]
cmp edx, dword [ecx + 0xe]
jne case.0x500fd4.211
cmp al, 0xad
jne 0x500f31
mov byte [ebx + 0x76], 0
mov byte [ebx + 0x77], 0
mov eax, ebx
call fcn.004d9cf8
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 0x500f05
mov ecx, 0x501ac8
mov edx, dword [ebx]
lea eax, [ebp - 0xf4]
call fcn.00403f38
mov edx, dword [ebp - 0xf4]
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 0x500f1e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
xor ecx, ecx
mov edx, dword [ebp - 0x14]
call fcn.004af460
call fcn.004fa1ec
mov dl, 1
mov eax, ebx
call fcn.004ffc00
jmp case.0x500fd4.211
cmp byte [ebx + 0x76], 6
jne case.0x500fd4.211
mov byte [ebx + 0x76], 2
jmp case.0x500fd4.211
mov ecx, dword [ebx]
mov eax, dword [0x53be98]
mov eax, dword [eax]
mov edx, esi
call fcn.004e7e2c
jmp case.0x500fd4.211
cmp dword [ebx + 0x107c], 0
je case.0x500fd4.211
mov ebx, dword [ebx + 0x107c]
lea edx, [ebp - 0xf8]
lea eax, [esi + 0x20]
call fcn.00409cc8
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebx + 0x2d0]
mov eax, dword [eax + 0x208]
mov ecx, dword [eax]
call dword [ecx + 0x34]
jmp case.0x500fd4.211
push 0
push ebx
push 0xa09
mov eax, dword [0x53b64c]
call fcn.0043a3f0
push eax
call sub.user32.dll_PostMessageA
jmp case.0x500fd4.211
cmp al, 0xc
jne case.0x500fd4.211
xor eax, eax
mov al, byte [esi + 0xc]
add eax, 0xffffff2d
cmp eax, 0x20
ja case.0x500fd4.211
mov al, byte [eax + 0x500fdb]
jmp dword [eax*4 + 0x500ffc]
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c100]
cmp eax, dword [edx + 0xe]
jne case.0x500fd4.211
mov byte [ebx + 0x76], 2
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x14]
mov edx, dword [0x53bb14]
cmp eax, dword [edx]
jl case.0x500fd4.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x50106e
mov eax, dword [ebp - 0xc]
call fcn.004f6fd0
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 4]
lea eax, [esi + 0x20]
mov esi, eax
cmp dword [ebx + 0x6c], 0x2410271
jl 0x501087
mov eax, dword [esi]
mov dword [ebx + 0x1080], eax
add esi, 4
mov eax, dword [esi]
cmp eax, 0xfffffffe
jne 0x501097
xor eax, eax
call fcn.004da5b8
jmp 0x5010d0
cmp eax, 0xffffffff
je 0x5010d0
mov edx, dword [0x53c100]
mov edx, dword [edx + 6]
cmp byte [edx + eax], 0
je 0x5010c6
mov edx, dword [0x53c100]
mov edx, dword [edx + 6]
mov byte [edx + eax], 0
mov edx, dword [0x53b9c4]
mov edx, dword [edx]
xchg edx, eax
call fcn.004ea0f0
add esi, 4
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x50109c
mov eax, dword [0x53b9c4]
mov eax, dword [eax]
call fcn.004ea0e8
test eax, eax
jle case.0x500fd4.211
mov eax, dword [0x53c100]
mov byte [eax + 1], 1
jmp case.0x500fd4.211
mov eax, dword [0x53bdcc]
cmp dword [eax + 4], 0
jne 0x501108
cmp dword [eax], 0
jbe case.0x500fd4.211
jmp 0x50110e
jle case.0x500fd4.211
mov eax, dword [esi + 0x10]
mov edx, dword [0x53c100]
cmp eax, dword [edx + 0xe]
jne case.0x500fd4.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x50112f
mov eax, dword [ebp - 0xc]
call fcn.004f6fd0
mov eax, dword [ebp - 0xc]
call fcn.004da5d8
mov eax, dword [0x53bb2c]
xor edx, edx
mov dword [eax], edx
mov byte [ebx + 0x76], 0
jmp case.0x500fd4.211
mov eax, dword [0x53bdcc]
cmp dword [eax + 4], 0
jne 0x50115f
cmp dword [eax], 0
jbe case.0x500fd4.211
jmp 0x501165
jle case.0x500fd4.211
cmp byte [0x53b6b0], 3
jne case.0x500fd4.211
cmp dword [ebx + 0x1084], 0
je case.0x500fd4.211
lea edx, [ebp - 0x108]
mov eax, dword [0x53bfcc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2dc]
mov ecx, dword [eax]
call dword [ecx + 0x40]
lea eax, [ebp - 0x108]
push eax
lea edx, [ebp - 0x118]
mov eax, dword [ebx + 0x1088]
call fcn.00433d20
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x78]
push eax
call sub.user32.dll_IntersectRect
cmp dword [ebp - 0x78], 0
jne 0x5011db
cmp dword [ebp - 0x74], 0
jne 0x5011db
cmp dword [ebp - 0x70], 0
jne 0x5011db
cmp dword [ebp - 0x6c], 0
je case.0x500fd4.211
mov eax, dword [ebx + 0x1084]
mov edx, dword [0x41add8]
call fcn.0040307c
test al, al
jne 0x50120d
mov eax, dword [ebx + 0x1084]
call fcn.00402f04
mov dl, 1
mov eax, dword [0x41add8]
call fcn.00420fcc
mov dword [ebx + 0x1084], eax
cmp dword [esi + 0x1c], 0
je 0x501279
cmp byte [esi + 0xc], 0xec
jne 0x50121e
mov edi, dword [esi + 0x14]
jmp 0x501220
xor edi, edi
push edi
mov eax, dword [ebp - 0xc]
call fcn.004142f8
mov ecx, eax
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00462ca4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.004142ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov edx, dword [eax + 0x24]
mov eax, dword [ebx + 0x1084]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00462c6c
jmp 0x501294
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.004142ec
mov eax, dword [ebx + 0x1084]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [0x53c1d8]
mov edx, dword [edx]
mov eax, dword [ebx + 0x1088]
call fcn.00433b50
mov edx, dword [0x53c1c4]
mov edx, dword [edx]
mov eax, dword [ebx + 0x1088]
call fcn.00433b70
mov eax, dword [ebx + 0x1088]
mov edx, dword [eax]
call dword [edx + 0x74]
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x108c], eax
jmp case.0x500fd4.211
mov eax, dword [0x53bdcc]
cmp dword [eax + 4], 0
jne 0x5012e9
cmp dword [eax], 0
jbe case.0x500fd4.211
jmp 0x5012ef
jle case.0x500fd4.211
cmp byte [0x53b6b0], 3
jne case.0x500fd4.211
cmp dword [ebx + 0x1084], 0
je case.0x500fd4.211
mov eax, dword [ebx + 0x1084]
mov edx, dword [0x4b4210]
call fcn.0040307c
test al, al
jne 0x50133b
mov eax, dword [ebx + 0x1084]
call fcn.00402f04
mov dl, 1
mov eax, dword [0x4b4210]
call fcn.004b44c0
mov dword [ebx + 0x1084], eax
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.004142ec
mov eax, dword [ebx + 0x1084]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [0x53c1d8]
mov edx, dword [edx]
mov eax, dword [ebx + 0x1088]
call fcn.00433b50
mov edx, dword [0x53c1c4]
mov edx, dword [edx]
mov eax, dword [ebx + 0x1088]
call fcn.00433b70
mov eax, dword [ebx + 0x1088]
mov edx, dword [eax]
call dword [edx + 0x74]
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x108c], eax
jmp case.0x500fd4.211
mov eax, dword [0x53bdcc]
cmp dword [eax + 4], 0
jne 0x5013ab
cmp dword [eax], 0
jbe case.0x500fd4.211
jmp 0x5013b1
jle case.0x500fd4.211
cmp dword [0x568020], 0
je 0x5013f0
cmp ebx, dword [0x568020]
je 0x5013f0
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x568020]
mov eax, dword [ebp - 4]
call fcn.004fab18
mov eax, dword [0x568020]
call fcn.004f6b00
jmp case.0x500fd4.211
cmp byte [0x53b6b0], 0
je case.0x500fd4.211
mov eax, dword [esi + 0x10]
cmp eax, 0xffffffff
je 0x501423
mov edx, eax
and edx, 0xffff
mov ecx, dword [0x53c02c]
mov dword [ecx], edx
shr eax, 0x10
mov edx, dword [0x53c02c]
mov dword [edx + 4], eax
jmp 0x50142e
mov eax, dword [0x53c02c]
mov dword [eax], 0xffffffff
cmp byte [esi + 0xc], 0xeb
jne 0x501439
mov edi, dword [esi + 0x18]
jmp 0x50143b
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.00462ca4
cmp dword [esi + 0x14], 0
je 0x501462
cmp dword [ebx + 0x6c], 0x247007e
jge 0x50148b
mov eax, dword [0x53bb60]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov edx, dword [edx + 0x24]
mov ecx, dword [0x53bb60]
mov dword [ecx], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2d8]
mov dword [edx + 0x24], eax
jmp 0x5014bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
mov eax, dword [eax + 0x24]
call fcn.004142f8
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 [0x53bb60]
mov eax, dword [eax]
mov eax, dword [eax + 4]
call fcn.0046851c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00462c6c
mov eax, dword [0x53bb60]
mov eax, dword [eax]
xor edx, edx
call fcn.004142ec
cmp byte [0x53b6b0], 3
jne 0x5015e4
mov eax, dword [ebx + 0x1084]
mov edx, dword [0x41add8]
call fcn.0040307c
test al, al
jne 0x501517
mov eax, dword [ebx + 0x1084]
call fcn.00402f04
mov dl, 1
mov eax, dword [0x41add8]
call fcn.00420fcc
mov dword [ebx + 0x1084], eax
mov edx, dword [0x53bb60]
mov edx, dword [edx]
mov eax, dword [ebx + 0x1084]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53b684]
mov edx, dword [0x53b688]
sub eax, dword [0x53b73c]
sbb edx, dword [0x53b740]
cmp edx, 0
jne 0x501550
cmp eax, 0xbb8
jbe 0x501594
jmp 0x501552
jle 0x501594
mov eax, dword [0x53c02c]
cmp dword [eax], 0xffffffff
je 0x501594
mov eax, dword [0x53bad0]
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 + 0x1084]
call fcn.00421538
mov ecx, dword [0x53c02c]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53c02c]
mov edx, dword [edx]
call fcn.0041ca40
mov eax, ebx
call fcn.004eb4b4
test al, al
je 0x5015c4
mov eax, dword [ebx + 0x1084]
mov edx, dword [0x41add8]
call fcn.0040307c
test al, al
je 0x5015c4
mov eax, dword [0x53bfcc]
mov eax, dword [eax]
mov edx, ebx
call fcn.004eb4d0
jmp 0x5015d4
mov eax, dword [0x53b9e0]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0x3ff00000
mov eax, dword [ebx + 0x1088]
mov edx, dword [eax]
call dword [edx + 0x74]
jmp 0x50168a
mov edx, dword [0x53bb60]
mov edx, dword [edx]
mov eax, dword [0x53beb8]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [0x53b684]
mov edx, dword [0x53b688]
sub eax, dword [0x53b73c]
sbb edx, dword [0x53b740]
cmp edx, 0
jne 0x50161e
cmp eax, 0xbb8
jbe 0x501663
jmp 0x501620
jle 0x501663
mov eax, dword [0x53c02c]
cmp dword [eax], 0xffffffff
je 0x501663
mov eax, dword [0x53bad0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 0x128]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x53beb8]
mov eax, dword [eax]
call fcn.00421538
mov ecx, dword [0x53c02c]
mov ecx, dword [ecx + 4]
mov edx, dword [0x53c02c]
mov edx, dword [edx]
call fcn.0041ca40
mov eax, dword [0x53bad0]
mov eax, dword [eax]
call fcn.004ee5ac
mov eax, dword [0x53bad0]
mov eax, dword [eax]
mov esi, dword [eax + 0x2e4]
xor edx, edx
mov eax, dword [esi + 0x12c]
call dword [esi + 0x128]
mov dword [ebx + 0x108c], 0x4000
jmp case.0x500fd4.211
mov eax, dword [0x53b7f0]
cmp dword [eax], 0
je case.0x500fd4.211
mov eax, dword [0x53b7f0]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.004f17bc
jmp case.0x500fd4.211
mov eax, dword [esi + 0x1c]
test al, al
je 0x5016cb
mov eax, dword [ebp - 0xc]
call fcn.004f6fd0
mov eax, dword [0x53c134]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.004d7d50
jmp case.0x500fd4.211
cmp dword [0x568020], 0
je 0x501720
cmp ebx, dword [0x568020]
je 0x501720
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, 0x88
mov edx, dword [0x568020]
mov eax, dword [ebp - 4]
call fcn.004fab18
mov eax, dword [0x568020]
call fcn.004f6b00
jmp case.0x500fd4.211
cmp dword [ebx + 0x1090], 0
jne 0x50173b
mov dl, 1
mov eax, dword [0x410964]
call fcn.00402ed4
mov dword [ebx + 0x1090], eax
cmp dword [esi + 0x14], 0
jne 0x50174e
mov eax, dword [ebx + 0x1090]
xor edx, edx
call fcn.004142ec
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x1090]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x500fd4.211
mov eax, dword [ebx + 0x1090]
mov esi, dword [eax + 4]
jmp 0x5013f0
cmp byte [0x53b6b0], 3
jne case.0x500fd4.211
cmp dword [ebx + 0x1084], 0
je case.0x500fd4.211
cmp dword [ebx + 0x1090], 0
jne 0x5017af
mov dl, 1
mov eax, dword [0x410964]
call fcn.00402ed4
mov dword [ebx + 0x1090], eax
cmp dword [esi + 0x14], 0
jne 0x5017c2
mov eax, dword [ebx + 0x1090]
xor edx, edx
call fcn.004142ec
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x1090]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x500fd4.211
mov eax, dword [ebx + 0x1090]
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.004142ec
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], 0xea
je 0x501309
cmp byte [esi + 0xc], 0xec
je 0x50117f
jmp case.0x500fd4.211
cmp dword [ebx + 0x1090], 0
jne 0x50183e
mov dl, 1
mov eax, dword [0x410964]
call fcn.00402ed4
mov dword [ebx + 0x1090], eax
cmp dword [esi + 0x14], 0
jne 0x501851
mov eax, dword [ebx + 0x1090]
xor edx, edx
call fcn.004142ec
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x1090]
mov edi, dword [eax]
call dword [edi + 8]
cmp dword [esi + 0x18], 0
jne case.0x500fd4.211
mov eax, dword [ebx + 0x1090]
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.004142ec
mov ecx, dword [esi + 4]
mov edx, esi
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 8]
jmp case.0x500fd4.218
mov eax, dword [0x53be78]
cmp byte [eax], 1
jne case.0x500fd4.211
cmp dword [esi + 0x14], 0
jne 0x50193d
cmp dword [ebx + 0x1098], 0
jne 0x50193d
mov eax, dword [0x53bfe4]
push dword [eax]
push 0x501b88
push dword [ebx]
mov eax, dword [0x53c020]
push dword [eax]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00403fac
lea edx, [ebp - 0x11c]
mov eax, dword [ebp - 0x1c]
call fcn.004097f8
mov eax, dword [ebp - 0x11c]
call fcn.00462a0c
lea eax, [ebp - 0x120]
mov edx, dword [ebp - 0x1c]
call fcn.00404434
mov eax, dword [ebp - 0x120]
mov dx, 0xffff
call fcn.00466760
mov dword [ebx + 0x1098], eax
mov eax, dword [esi + 0x18]
cdq
push edx
push eax
mov eax, dword [ebx + 0x1098]
call fcn.00464adc
push 0
push 0
mov eax, dword [ebx + 0x1098]
call fcn.00464a7c
cmp dword [ebx + 0x1098], 0
je case.0x500fd4.211
mov ecx, dword [esi + 4]
sub ecx, 0x20
lea edx, [esi + 0x20]
mov eax, dword [ebx + 0x1098]
mov edi, dword [eax]
call dword [edi + 8]
mov eax, dword [ebx + 0x1098]
call fcn.00464a58
push edx
push eax
mov eax, dword [esi + 0x18]
cdq
cmp edx, dword [esp + 4]
jne 0x501974
cmp eax, dword [esp]
pop edx
pop eax
jne case.0x500fd4.211
lea eax, [ebx + 0x1098]
call fcn.0040de48
mov byte [ebx + 0x109c], 3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5019b1
mov eax, dword [ebp - 0xc]
call fcn.00402f04
ret
mov eax, dword [ebx + 0x2c]
xor edx, edx
call fcn.004142ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5019dc
call fcn.004fbc14
ret
mov eax, dword [ebx + 0x2c]
call fcn.004142dc
cmp eax, 0x20
je 0x4ffec0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x501a7b
lea eax, [ebp - 0x120]
call fcn.004042c4
lea eax, [ebp - 0x11c]
call fcn.00403c6c
lea eax, [ebp - 0xf8]
mov edx, 4
call fcn.00403c90
lea eax, [ebp - 0xe0]
mov edx, 8
call fcn.00403c90
lea eax, [ebp - 0xc0]
call fcn.004042c4
lea eax, [ebp - 0xbc]
call fcn.00403c6c
lea eax, [ebp - 0xb8]
call fcn.004042c4
lea eax, [ebp - 0xb4]
call fcn.00403c6c
lea eax, [ebp - 0xac]
mov edx, 0xd
call fcn.00403c90
lea eax, [ebp - 0x3c]
mov edx, 5
call fcn.00403c90
lea eax, [ebp - 0x1c]
call fcn.00403c6c
ret