Function at 0x5090b0
Capabilities:
Check for time delay via gettickcount
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
push 0x12
mov eax, dword [esi*4 + 0x20a514c]
push eax
mov dword [esp + 0x30], esi
mov dword [eax + 0x930], 0
call fcn.004774b0
movzx eax, word [edi + 6]
cmp eax, 0xd7
ja 0x50a4cf
je 0x50a4ad
sub eax, 5
cmp eax, 0xc5
ja case.0x50a4f7.220
movzx eax, byte [eax + 0x50b7f0]
jmp dword [eax*4 + 0x50b760]
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050bc00
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050c060
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [esi*4 + 0x20a514c]
mov ecx, dword [esi + 0x390]
movzx eax, word [ecx + 0x110]
mov edx, eax
test ax, ax
js case.0x50a26e.162
mov eax, 0x2000
cmp dx, ax
jge case.0x50a26e.162
lea eax, [edx - 0xc00]
mov edx, 0x1ff
cmp ax, dx
ja case.0x50a26e.162
cmp byte [ecx + 0x1a8], 0
je case.0x50a26e.162
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
lea edx, [esp + 0x28]
mov dword [esi + 0x930], eax
mov eax, ecx
shr eax, 8
mov byte [esp + 0x2b], al
mov al, byte [esi + 0x148]
mov byte [esp + 0x2c], cl
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x2d], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x30], cl
mov ecx, esi
push 9
mov word [esp + 0x2c], 0x9c1
mov byte [esp + 0x2e], 0x18
mov byte [esp + 0x32], 0x12
mov byte [esp + 0x33], al
call fcn.005264a0
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050c560
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050c770
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050ccf0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push edi
push ecx
push esi
call fcn.0050d270
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x18], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
nop dword [eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50939b
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x509397
mov eax, dword [esp + 0x18]
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x28], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x1c]
movzx eax, word [edi + 8]
push dword [esp + 0x2c]
push eax
call fcn.005080e0
test al, al
je 0x509397
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push edi
push dword [esp + 0x40]
push dword [esp + 0x2c]
call fcn.00406af0
cmp byte [ebp + 0x20], 0
je 0x509389
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x5092f0
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x5094bf
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x5094bb
mov eax, dword [esp + 0x18]
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x14], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x30]
movzx eax, word [edi + 8]
push dword [esp + 0x2c]
push eax
call fcn.005080e0
test al, al
je 0x5094bb
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push edi
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.00406af0
cmp byte [ebp + 0x20], 0
je 0x5094a9
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x509410
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
mov eax, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x18], eax
cmp ebx, 0x3a
je 0x509630
cmp ebx, 0x18b
je 0x509630
cmp byte [eax + 0x5e1], 0
je case.0x50a26e.162
mov esi, eax
mov dword [esp + 0x14], 0
xor eax, eax
mov dword [esp + 0x10], eax
mov byte [esi + 0x5e1], 0
mov dword [esi + 0x5e4], 0
nop word [eax + eax]
mov edx, dword [esi + 0x368]
cmp byte [eax + edx], 0
je 0x5095f2
movsx ecx, word [eax + edx + 1]
movzx eax, byte [eax + edx + 3]
push eax
push ebx
push ecx
push esi
mov dword [esp + 0x2c], ecx
call fcn.005082f0
test al, al
je 0x5095ee
mov ecx, dword [esp + 0x1c]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [esi + 0x146]
push eax
movsx eax, word [esi + 0x144]
push eax
push edx
call fcn.005080e0
test al, al
je 0x5095ee
mov eax, dword [ebp + 0x20]
mov edx, 0x32
movzx eax, al
mov ecx, esi
push eax
movzx eax, word [edi + 8]
push eax
push 0x258
push dword [esp + 0x28]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x5095e0
push 1
push dword [esp + 0x20]
push 0x3b
push esi
call fcn.00517480
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x14
jge 0x509604
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
cmp eax, 0x12c
jl 0x509540
mov esi, dword [esp + 0x28]
movzx eax, word [edi + 8]
mov ecx, dword [esp + 0x18]
push 1
push esi
push eax
push ecx
call fcn.00517480
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
cmp byte [eax + 0x5e1], 0
jne case.0x50a26e.162
mov word [eax + 0x5e1], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x18]
push 1
push esi
push ebx
push ecx
mov dword [ecx + 0x5e4], eax
call fcn.00517480
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
nop
mov eax, dword [ecx + 0x368]
cmp byte [eax + esi], 0
je 0x50974b
movsx edx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x24], edx
call fcn.005082f0
test al, al
je 0x509747
mov eax, dword [esp + 0x14]
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x28], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x509747
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push edi
push dword [esp + 0x40]
push dword [esp + 0x2c]
call fcn.00406af0
cmp byte [ebp + 0x20], 0
je 0x509735
push 1
push dword [esp + 0x18]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x509690
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50983f
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x50983b
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50983f
mov eax, dword [ebp + 0x20]
mov edx, 0x32
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0x1f4
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x509829
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x509780
jmp 0x5093aa
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050d5e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050ea00
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push edi
push ecx
push esi
call fcn.0050d760
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
nop dword [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x509972
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x24], edx
call fcn.005082f0
test al, al
je 0x50996e
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x50996e
mov eax, dword [esp + 0x14]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push 0
push edi
push dword [eax*4 + 0x20a514c]
push dword [esp + 0x2c]
call fcn.00406af0
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x14
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x5098d0
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
sub esp, 0x10
mov dword [esp + 0x20], ecx
movsx eax, word [ecx + 0x146]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x40c00000
mov dword [esp], 0x40c00000
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [ebp + 0x1c]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00507d40
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [eax + esi], 0
je 0x509ace
movsx edx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x24], edx
call fcn.005082f0
test al, al
je 0x509aca
mov eax, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x1c], eax
movsx ecx, word [eax + 0x146]
movsx eax, word [eax + 0x144]
push ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x28], eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x509aca
push dword [esp + 0x28]
lea eax, [esp + 0x38]
push dword [esp + 0x24]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.005081e0
test al, al
je 0x509aca
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push edi
push dword [esp + 0x34]
push dword [esp + 0x2c]
call fcn.00406af0
cmp byte [ebp + 0x20], 0
je 0x509ab8
push 1
push dword [esp + 0x18]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x5099f0
jmp 0x5093aa
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050dd30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050d5e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
nop
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x509bff
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x509bfb
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x509bff
mov eax, dword [ebp + 0x20]
mov edx, 0x32
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0x1f4
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x509be9
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x14
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x509b40
jmp 0x5093aa
push edi
push ecx
push esi
call fcn.0050df80
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push edi
push ecx
push esi
call fcn.0050e310
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push dword [ebp + 0x1c]
push edi
push ebx
push esi
call fcn.0050e870
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x1c]
push edi
push ecx
push esi
call fcn.0050eb00
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [esi*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
cmp al, 0x1e
je 0x509ca8
cmp al, 0x1f
jne case.0x50a26e.162
push 5
lea eax, [esp + 0x2c]
mov byte [ebx + 0xdd4], 0
push eax
push esi
mov dword [esp + 0x34], 0x1b805c1
mov byte [esp + 0x38], 0
call fcn.005192f0
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
call fcn.00517480
xor esi, esi
nop dword [eax]
mov eax, dword [ebx + 0x368]
cmp byte [eax + esi], 0
je 0x509d54
cmp byte [eax + esi + 3], 1
jne 0x509d54
movsx eax, word [eax + esi + 1]
mov dword [esp + 0x14], eax
mov ecx, dword [eax*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [ebx + 0x146]
push eax
movsx eax, word [ebx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x509d54
mov eax, dword [esp + 0x14]
push 0x3d
push dword [eax*4 + 0x20a514c]
call fcn.004774b0
movzx eax, word [edi + 8]
push 1
push dword [esp + 0x18]
push eax
push ebx
call fcn.00517480
add esi, 4
cmp esi, 0x12c
jl 0x509ce0
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push edi
push ecx
push esi
call fcn.0050ed60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [esi*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
cmp al, 0x1e
je 0x509daa
cmp al, 0x1f
jne case.0x50a26e.162
mov eax, dword [ebp + 0xc]
test eax, eax
js case.0x50a26e.162
cmp eax, 0x1194
jge case.0x50a26e.162
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x28], ecx
cmp word [ecx + 0x78], 1
jne case.0x50a26e.162
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [ebx + 0x146]
push eax
movsx eax, word [ebx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.00507fe0
test al, al
je case.0x50a26e.162
push 5
lea eax, [esp + 0x24]
mov byte [ebx + 0xdd4], 0
push eax
push esi
mov dword [esp + 0x2c], 0x1b805c1
mov byte [esp + 0x30], 0
call fcn.005192f0
push 0
push 0
push 0
push 0
push dword [0xbdc024]
push 0x12
push 0
push dword [esp + 0x44]
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
call fcn.00517480
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [esi*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
cmp al, 0x1e
je 0x509e81
cmp al, 0x1f
jne case.0x50a26e.162
push 5
lea eax, [esp + 0x2c]
mov byte [ebx + 0xdd4], 0
push eax
push esi
mov dword [esp + 0x34], 0x1b805c1
mov byte [esp + 0x38], 0
call fcn.005192f0
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
call fcn.00517480
xor esi, esi
mov eax, dword [ebx + 0x368]
cmp byte [esi + eax], 0
je 0x509f26
cmp byte [esi + eax + 3], 1
jne 0x509f26
movsx eax, word [esi + eax + 1]
mov dword [esp + 0x14], eax
mov ecx, dword [eax*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [ebx + 0x146]
push eax
movsx eax, word [ebx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x509f26
mov eax, dword [esp + 0x14]
push 0x12
push dword [eax*4 + 0x20a514c]
call fcn.004774b0
movzx eax, word [edi + 8]
push 1
push dword [esp + 0x18]
push eax
push ebx
call fcn.00517480
add esi, 4
cmp esi, 0x12c
jl 0x509eb2
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [esi*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
cmp al, 0x1e
je 0x509f60
cmp al, 0x1f
jne case.0x50a26e.162
push 5
lea eax, [esp + 0x2c]
mov byte [ebx + 0xdd4], 0
push eax
push esi
mov dword [esp + 0x34], 0x1b805c1
mov byte [esp + 0x38], 0
call fcn.005192f0
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
call fcn.00517480
xor esi, esi
mov eax, dword [ebx + 0x368]
cmp byte [eax + esi], 0
je 0x50a003
cmp byte [eax + esi + 3], 1
jne 0x50a003
movsx eax, word [eax + esi + 1]
mov dword [esp + 0x14], eax
mov ecx, dword [eax*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [ebx + 0x146]
push eax
movsx eax, word [ebx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x50a003
mov eax, dword [esp + 0x14]
push dword [eax*4 + 0x20a514c]
call fcn.00478880
movzx eax, word [edi + 8]
push 1
push dword [esp + 0x18]
push eax
push ebx
call fcn.00517480
add esi, 4
cmp esi, 0x12c
jl 0x509f91
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [esi*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
cmp al, 0x1e
je 0x50a03d
cmp al, 0x1f
jne case.0x50a26e.162
push 5
lea eax, [esp + 0x2c]
mov byte [ebx + 0xdd4], 0
push eax
push esi
mov dword [esp + 0x34], 0x1b805c1
mov byte [esp + 0x38], 0
call fcn.005192f0
push 0
push 0
push 0
push 0
push dword [0xbdc028]
push 0x13
push 0
push ebx
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
call fcn.00517480
xor esi, esi
nop word [eax + eax]
mov eax, dword [ebx + 0x368]
cmp byte [esi + eax], 0
je 0x50a114
cmp byte [esi + eax + 3], 1
jne 0x50a114
movsx eax, word [esi + eax + 1]
mov dword [esp + 0x14], eax
mov ecx, dword [eax*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [ebx + 0x146]
push eax
movsx eax, word [ebx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x50a114
mov eax, dword [esp + 0x14]
push 0
push 0
push 0
push 0
push dword [0xbdc028]
push 0x13
push 0
push dword [eax*4 + 0x20a514c]
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push dword [esp + 0x18]
push eax
push ebx
call fcn.00517480
add esi, 4
cmp esi, 0x12c
jl 0x50a090
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50a1ff
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x24], edx
call fcn.005082f0
test al, al
je 0x50a1fb
mov ecx, dword [esp + 0x14]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50a1ff
movzx eax, word [edi + 8]
mov edx, 0x35
push 0
push eax
push 0x1f4
push dword [esp + 0x20]
call fcn.00523c10
mov edx, dword [esp + 0x28]
add esp, 0x10
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50a160
jmp 0x5093aa
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050f590
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x14], esi
call fcn.00526930
cdq
mov ecx, 0xa
idiv ecx
test edx, edx
je case.0x50a26e.162
movzx eax, word [esi + 0xcc]
add eax, 0xffffff5f
cmp eax, 0x72
ja case.0x50a26e.162
movzx eax, byte [eax + 0x50b8d4]
jmp dword [eax*4 + 0x50b8b8]
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a289
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0x93
jmp 0x50a31e
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a2a8
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0xb1
jmp 0x50a31e
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a2c4
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0xb9
jmp 0x50a31e
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a2e0
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0xc1
jmp 0x50a31e
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a2fc
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0x107
jmp 0x50a31e
call fcn.00526930
mov ebx, eax
and ebx, 0x80000001
jns 0x50a318
dec ebx
or ebx, 0xfffffffe
inc ebx
add ebx, 0x10f
movzx ecx, byte [esi + 0x149]
lea edx, [esp + 0x1c]
xor al, al
mov byte [esp + 0x10], al
movsx eax, word [esi + 0x144]
mov dword [esp + 0x1c], eax
movsx eax, word [esi + 0x146]
push 0xa
push 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push 2
push eax
call fcn.0051edc0
add esp, 0x10
test al, al
je 0x50a424
movzx ecx, byte [esi + 0x149]
call fcn.004bd1b0
mov dword [esp + 0x28], eax
test eax, eax
js 0x50a424
cmp eax, 0x1194
jge 0x50a424
mov esi, dword [eax*4 + 0x20a514c]
or eax, 0xffffffff
mov ecx, dword [esp + 0x1c]
mov word [esi + 0x224], ax
mov eax, dword [esp + 0x18]
mov word [esi + 0x144], cx
mov word [esi + 0x146], ax
mov word [esi + 0x166], cx
mov word [esi + 0x168], ax
mov word [esi + 0x162], cx
mov word [esi + 0x164], ax
mov byte [esi + 0x160], cl
mov byte [esi + 0x161], al
call fcn.00526930
and eax, 0x80000007
jns 0x50a3e3
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [esp + 0x28]
mov edx, ebx
mov byte [esi + 0x148], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x149]
mov byte [esi + 0x149], al
call fcn.004bb250
mov eax, 0x3c
mov dword [esi + 0x220], 0
mov word [esi + 0x316], ax
mov al, 1
mov esi, dword [esp + 0x14]
mov byte [esp + 0x10], al
push dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
movzx eax, word [edi + 8]
shl ebx, 8
add ebx, dword [esp + 0x20]
push ebx
push eax
push esi
call fcn.00517480
mov al, byte [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push 0
push 0
push 0
push 0
push dword [0xbdc030]
push 0x3c
mov esi, dword [esi*4 + 0x20a514c]
push 0
push esi
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push dword [esi]
push eax
push esi
call fcn.00517480
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push 0
push 0
push 0
push 0
push dword [0xbdc034]
push 0x3b
jmp 0x50a467
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050f960
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x1ef
ja 0x50b687
je 0x50b568
sub eax, 0xd9
cmp eax, 0xf4
ja case.0x50a4f7.220
movzx eax, byte [eax + 0x50b9d0]
jmp dword [eax*4 + 0x50b948]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050fc20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x1c], eax
cmp word [eax + 0x78], 1
jne case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
cmp esi, ebx
jne case.0x50a26e.162
mov esi, dword [eax + 0x120]
add esi, dword [eax + 0xf4]
mov eax, esi
mov dword [esp + 0x28], esi
cdq
idiv dword [0xbdc070]
cmp eax, dword [0xbdc080]
cmovg eax, dword [0xbdc080]
mov dword [esp + 0x20], eax
mov eax, esi
cdq
mov esi, 0x28
idiv dword [0xbdc074]
sub esi, eax
cmp esi, 0xa
jge 0x50a582
mov esi, 0xa
mov eax, dword [esp + 0x28]
mov ecx, 0xbf0bd4
cdq
idiv dword [0xbdc07c]
mov dword [esp + 0x14], esi
add eax, dword [0xbdc078]
mov dword [esp + 0x18], eax
movzx eax, word [edi + 8]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00405650
mov eax, dword [esp + 0x3c]
mov ecx, dword [0xbf0bd4]
cmp byte [eax + 0xd], 0
jne 0x50a5d0
movzx edx, word [edi + 8]
cmp edx, dword [eax + 0x10]
jge 0x50a5d2
mov eax, ecx
cmp eax, ecx
jne 0x50a5db
or ecx, 0xffffffff
jmp 0x50a5de
mov ecx, dword [eax + 0x54]
push dword [esp + 0x14]
mov eax, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x24]
movzx eax, ax
push eax
push eax
push dword [esp + 0x28]
push ecx
push 0
push esi
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push ebx
push eax
push esi
call fcn.00517480
cmp byte [ebp + 0x20], 0
je 0x5093aa
push 1
push ebx
push 0x3b
jmp 0x50a47f
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00510230
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.005107c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00510d20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
nop dword [eax]
mov eax, dword [edx + 0x368]
cmp byte [eax + esi], 0
je 0x50a783
movsx ecx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push ecx
push edx
mov dword [esp + 0x28], ecx
call fcn.005082f0
test al, al
je 0x50a77f
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x30]
push dword [esp + 0x2c]
push edx
call fcn.005080e0
test al, al
je 0x50a77f
mov eax, dword [ebp + 0x20]
mov edx, 0x32
mov ecx, dword [esp + 0x10]
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0x3e8
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x50a76d
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0xa
jge 0x5093aa
mov edx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50a6d0
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
nop word [eax + eax]
mov eax, dword [edx + 0x368]
cmp byte [eax + esi], 0
je 0x50a883
movsx ecx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push ecx
push edx
mov dword [esp + 0x24], ecx
call fcn.005082f0
test al, al
je 0x50a87f
mov ecx, dword [esp + 0x14]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x30]
push dword [esp + 0x2c]
push edx
call fcn.005080e0
test al, al
je 0x50a87f
movzx eax, word [edi + 8]
mov edx, 0x32
mov ecx, dword [esp + 0x10]
push 0
push eax
push 0x3e8
push dword [esp + 0x20]
call fcn.00523c10
mov ecx, dword [esp + 0x28]
add esp, 0x10
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0xa
jge 0x5093aa
mov edx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50a7f0
jmp 0x5093aa
mov esi, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx ebx, byte [ebp + 0x14]
movzx ecx, word [edi + 8]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [esi + 0x146]
push ebx
push eax
movsx eax, word [esi + 0x144]
push eax
push ecx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
movzx eax, word [edi + 8]
mov edx, 0x37
shl ebx, 0x10
mov ecx, esi
or ebx, dword [esp + 0x28]
push ebx
push eax
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0xc]
push 0x3e8
push ebx
call fcn.00523c10
push dword [esp + 0x20]
movzx eax, word [edi + 8]
mov edx, 0x37
push eax
push 0x7d0
push ebx
mov ecx, esi
call fcn.00523c10
push dword [esp + 0x30]
movzx eax, word [edi + 8]
mov edx, 0x37
push eax
push 0xbb8
push ebx
mov ecx, esi
call fcn.00523c10
push dword [esp + 0x40]
movzx eax, word [edi + 8]
mov edx, 0x37
push eax
push 0xfa0
push ebx
mov ecx, esi
call fcn.00523c10
movzx eax, word [edi + 8]
add esp, 0x40
mov edx, 0x37
mov ecx, esi
push dword [esp + 0x10]
push eax
push 0x1388
push ebx
call fcn.00523c10
add esp, 0x10
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50aa4f
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x50aa4b
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50aa4f
mov eax, dword [ebp + 0x20]
mov edx, 0x32
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0xfa
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x50aa39
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50a990
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [edx + 0x368]
cmp byte [esi + eax], 0
je 0x50ab73
movsx ecx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push ecx
push edx
mov dword [esp + 0x28], ecx
call fcn.005082f0
test al, al
je 0x50ab6f
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x30]
push dword [esp + 0x2c]
push edx
call fcn.005080e0
test al, al
je 0x50ab6f
mov eax, dword [ebp + 0x20]
mov edx, 0x32
mov ecx, dword [esp + 0x10]
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0x1f4
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x50ab5d
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0xa
jge 0x5093aa
mov edx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50aac0
jmp 0x5093aa
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00511280
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.005116c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push dword [ebp + 0x1c]
push edi
push ebx
push esi
call fcn.00511840
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
sub esp, 0x10
mov dword [esp + 0x20], ecx
movsx eax, word [ecx + 0x146]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40a00000
mov dword [esp + 4], 0x40800000
mov dword [esp], 0x40000000
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [ebp + 0x1c]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00507d40
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [eax + esi], 0
je 0x50ad57
movsx edx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x50ad53
mov eax, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x1c], eax
movsx ecx, word [eax + 0x146]
movsx eax, word [eax + 0x144]
push ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x28], eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
test al, al
je 0x50ad53
push dword [esp + 0x28]
lea eax, [esp + 0x48]
push dword [esp + 0x24]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.005081e0
test al, al
je 0x50ad53
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 1
push edi
push dword [esp + 0x34]
push dword [esp + 0x2c]
call fcn.00406af0
push dword [ebp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 1
push edi
push dword [eax*4 + 0x20a514c]
push dword [esp + 0x2c]
call fcn.00406af0
cmp byte [ebp + 0x20], 0
je 0x50ad41
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50ac50
jmp 0x5093aa
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50ae4f
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x28], edx
call fcn.005082f0
test al, al
je 0x50ae4b
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50ae4f
mov eax, dword [ebp + 0x20]
mov edx, 0x32
movzx eax, al
push eax
movzx eax, word [edi + 8]
push eax
push 0x190
push dword [esp + 0x24]
call fcn.00523c10
add esp, 0x10
cmp byte [ebp + 0x20], 0
je 0x50ae39
push 1
push dword [esp + 0x1c]
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xa
jge 0x5093aa
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50ad90
jmp 0x5093aa
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push dword [ebp + 0x1c]
push edi
push ebx
push esi
call fcn.00511ea0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
movzx eax, word [edi + 8]
mov ecx, dword [esi*4 + 0x20a514c]
push 1
push ebx
push eax
push ecx
mov dword [esp + 0x20], ecx
call fcn.00517480
mov ecx, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x18], 0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50af5f
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x24], edx
call fcn.005082f0
test al, al
je 0x50af5b
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50af5f
mov eax, dword [esp + 0x14]
push 0
push 0
push 0
push 0
push 0
push edi
push dword [eax*4 + 0x20a514c]
push ecx
mov ecx, 0x57ac4c
call fcn.00406af0
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x14
jge 0x50af6e
mov ecx, dword [esp + 0x10]
add esi, 4
cmp esi, 0x12c
jl 0x50aec0
mov eax, dword [esp + 0x10]
mov ecx, 0x6509a4
push 0
push 0
push 0
push 0
push 1
push 0
push eax
push eax
mov dword [eax + 0xfc], 0
call fcn.004dd760
jmp 0x5093aa
mov ebx, dword [ebp + 0xc]
mov esi, dword [esi*4 + 0x20a514c]
test ebx, ebx
js case.0x50a26e.162
cmp ebx, 0x1194
jge case.0x50a26e.162
mov ecx, dword [ebx*4 + 0x20a514c]
mov dword [esp + 0x28], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [esi + 0x146]
push eax
movsx eax, word [esi + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov eax, dword [ebp + 0x20]
test al, al
je 0x50b009
push 1
push ebx
push 0x3b
push esi
call fcn.00517480
mov eax, dword [ebp + 0x20]
mov ebx, dword [esp + 0x28]
mov ecx, 0x57ac4c
push eax
push 1
push 0
push 0
push 1
push edi
push ebx
push esi
call fcn.00406af0
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 2
push 0
push 0
push 0
push edi
push ebx
push esi
call fcn.00406af0
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 3
push 0
push 0
push 0
push edi
push ebx
push esi
call fcn.00406af0
push dword [ebp + 0x20]
mov ecx, 0x57ac4c
push 4
push 0
push 0
push 0
push edi
push ebx
push esi
call fcn.00406af0
jmp 0x5093aa
mov eax, dword [ebp + 0xc]
mov esi, dword [esi*4 + 0x20a514c]
test eax, eax
js case.0x50a26e.162
cmp eax, 0x1194
jge case.0x50a26e.162
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x14], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [esi + 0x146]
push eax
movsx eax, word [esi + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0x20]
mov ecx, 0x57ac4c
push ebx
push 1
push 0
push 0
push 1
push edi
push dword [esp + 0x2c]
push esi
call fcn.00406af0
push ebx
push 2
push 0
push 0
push 0
push edi
push dword [esp + 0x2c]
push esi
mov ecx, 0x57ac4c
call fcn.00406af0
test bl, bl
je 0x5093aa
mov ebx, dword [ebp + 0xc]
push 1
push ebx
push 0x3b
jmp 0x50a47f
mov eax, dword [ebp + 0xc]
mov esi, dword [esi*4 + 0x20a514c]
test eax, eax
js case.0x50a26e.162
cmp eax, 0x1194
jge case.0x50a26e.162
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x10], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [esi + 0x146]
push eax
movsx eax, word [esi + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0x20]
mov ecx, 0x57ac4c
push ebx
push 1
push 0
push 0
push 1
push edi
push dword [esp + 0x28]
push esi
call fcn.00406af0
push ebx
push 2
push 0
push 0
push 0
push edi
push dword [esp + 0x28]
mov ecx, 0x57ac4c
push esi
call fcn.00406af0
push ebx
push 3
push 0
push 0
push 0
push edi
push dword [esp + 0x28]
mov ecx, 0x57ac4c
push esi
call fcn.00406af0
push ebx
push 4
push 0
push 0
push 0
push edi
push dword [esp + 0x28]
jmp 0x50b0f4
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00512050
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x18], eax
cmp word [eax + 0x78], 1
jne case.0x50a26e.162
cmp esi, dword [ebp + 0xc]
jne case.0x50a26e.162
mov ecx, dword [eax + 0x120]
add ecx, dword [eax + 0xf4]
mov eax, ecx
movzx ebx, word [edi + 8]
cdq
idiv dword [0xbdc100]
mov dword [esp + 0x28], ebx
add eax, dword [0xbdc0fc]
mov dword [esp + 0x20], eax
mov eax, ecx
cdq
mov ecx, 0xbf0bd4
idiv dword [0xbdc108]
add eax, dword [0xbdc104]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00405650
mov eax, dword [esp + 0x3c]
mov ecx, dword [0xbf0bd4]
cmp byte [eax + 0xd], 0
jne 0x50b273
cmp ebx, dword [eax + 0x10]
jge 0x50b275
mov eax, ecx
cmp eax, ecx
jne 0x50b27e
or eax, 0xffffffff
jmp 0x50b281
mov eax, dword [eax + 0x54]
mov ebx, dword [esp + 0x18]
push 0
push 0
push 0
push dword [esp + 0x2c]
push dword [esp + 0x24]
push eax
push 0
push ebx
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
jmp 0x50a480
push edi
push ecx
push esi
call fcn.005121f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push edi
push ecx
push esi
call fcn.00512a10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00512050
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
movzx eax, byte [ebp + 0x18]
movzx edx, byte [ebp + 0x14]
push eax
mov dword [esp + 0x2c], eax
movsx eax, word [ecx + 0x146]
push edx
push eax
movsx eax, word [ecx + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], edx
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], esi
nop dword [eax + eax]
mov eax, dword [edx + 0x368]
cmp byte [eax + esi], 0
je 0x50b432
movsx ecx, word [eax + esi + 1]
movzx eax, byte [eax + esi + 3]
push eax
push ebx
push ecx
push edx
mov dword [esp + 0x28], ecx
call fcn.005082f0
test al, al
je 0x50b42e
mov ecx, dword [esp + 0x18]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push dword [esp + 0x30]
push dword [esp + 0x2c]
push edx
call fcn.005080e0
test al, al
je 0x50b42e
mov eax, dword [ebp + 0x20]
mov edx, 0x35
mov ecx, dword [esp + 0x10]
movzx esi, al
movzx eax, word [edi + 8]
push esi
push eax
push 0x3e8
push dword [esp + 0x24]
call fcn.00523c10
movzx eax, word [edi + 8]
mov edx, 0x32
mov ecx, dword [esp + 0x20]
push esi
mov esi, dword [esp + 0x2c]
push eax
push 0x5dc
push esi
call fcn.00523c10
add esp, 0x20
cmp byte [ebp + 0x20], 0
je 0x50b418
push 1
push esi
push 0x3b
push dword [esp + 0x1c]
call fcn.00517480
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0xa
jge 0x5093aa
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x1c], esi
cmp esi, 0x12c
jl 0x50b360
jmp 0x5093aa
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00513250
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.005133a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [ebp + 0xc]
mov esi, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x20], esi
test eax, eax
js case.0x50a26e.162
cmp eax, 0x1194
jge case.0x50a26e.162
mov ecx, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x28], ecx
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
movsx eax, word [esi + 0x146]
push eax
movsx eax, word [esi + 0x144]
push eax
movzx eax, word [edi + 8]
push eax
call fcn.00507fe0
test al, al
je case.0x50a26e.162
mov ebx, dword [ebp + 0x20]
mov ecx, 0x57ac4c
push ebx
push 0
push 0
push 0
push 1
push edi
push dword [esp + 0x40]
push esi
call fcn.00406af0
movzx eax, word [edi + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
push 1
push esi
push eax
push edi
call fcn.00517480
test bl, bl
je 0x5093aa
push 1
push esi
push 0x3b
push edi
jmp 0x50a480
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.005136b0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00513b30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi*4 + 0x20a514c]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], esi
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ecx + 0x368]
cmp byte [esi + eax], 0
je 0x50b66f
movsx edx, word [esi + eax + 1]
movzx eax, byte [esi + eax + 3]
push eax
push ebx
push edx
push ecx
mov dword [esp + 0x2c], edx
call fcn.005082f0
test al, al
je 0x50b66b
mov ecx, dword [esp + 0x1c]
movzx edx, word [edi + 8]
mov ecx, dword [ecx*4 + 0x20a514c]
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
mov ecx, dword [esp + 0x14]
push eax
movsx eax, word [ecx + 0x146]
push eax
movsx eax, word [ecx + 0x144]
push eax
push edx
call fcn.005080e0
mov ecx, dword [esp + 0x10]
test al, al
je 0x50b66f
mov eax, dword [ebp + 0x20]
mov edx, 0x35
movzx esi, al
movzx eax, word [edi + 8]
push esi
push eax
push 0x4b0
push dword [esp + 0x28]
call fcn.00523c10
movzx eax, word [edi + 8]
mov edx, 0x32
push esi
mov esi, dword [esp + 0x24]
mov ecx, esi
push eax
push 0x5dc
push dword [esp + 0x38]
call fcn.00523c10
add esp, 0x20
cmp byte [ebp + 0x20], 0
je 0x50b655
push 1
push dword [esp + 0x20]
push 0x3b
push esi
call fcn.00517480
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xa
jge 0x5093aa
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x18], esi
cmp esi, 0x12c
jl 0x50b590
jmp 0x5093aa
sub eax, 0x209
je 0x50b740
sub eax, 0x2c
je 0x50b6b9
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.0050bad0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x20], eax
cmp word [eax + 0x78], 1
jne case.0x50a26e.162
cmp esi, dword [ebp + 0xc]
jne case.0x50a26e.162
movzx ebx, word [edi + 8]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x2c], ebx
push eax
mov ecx, 0xbf0bd4
call fcn.00405650
mov eax, dword [esp + 0x3c]
mov ecx, dword [0xbf0bd4]
cmp byte [eax + 0xd], 0
jne 0x50b709
cmp ebx, dword [eax + 0x10]
jge 0x50b70b
mov eax, ecx
cmp eax, ecx
jne 0x50b714
or eax, 0xffffffff
jmp 0x50b717
mov eax, dword [eax + 0x54]
mov ebx, dword [esp + 0x20]
push 0
push 0
push 0
push 0
push dword [0xbdc164]
push eax
push 0
push ebx
call fcn.00477200
movzx eax, word [edi + 8]
push 1
push esi
push eax
push ebx
jmp 0x50a480
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push esi
call fcn.00514090
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x1c