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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xec]
cmp eax, dword [ecx + 8]
jbe 0x50a0c6
sub esp, 0x16c
mov ecx, dword [esp + 0x178]
cmp ecx, 2
jl 0x50a010
xor eax, eax
mov edx, eax
xor ebx, ebx
mov ebp, edx
mov esi, ebp
xor edi, edi
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x174]
mov dword [esp + 0x168], eax
mov eax, ebp
jmp 0x508b2a
lea ecx, [edx + 1]
mov edx, dword [esp + 0x164]
movzx edx, word [esp + 0x22]
movzx ebx, word [esp + 0x24]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x34]
cmp edx, esi
jge 0x508af5
cmp edx, ebp
jge 0x508af5
cmp edx, esi
jae 0x50a0b8
mov ebx, dword [edi + edx*4]
cmp edx, ebp
jae 0x50a0b8
mov ecx, dword [ecx + edx*4]
cmp ebx, ecx
je 0x508ab0
test edx, edx
jle 0x508bc7
mov ecx, dword [esp + 0x30]
cmp edx, ecx
ja 0x50a0b1
mov ebx, dword [esp + 0x4c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], esi
mov esi, edx
mov edx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x178]
cmp eax, ecx
jg 0x5092bb
mov dword [esp + 0x5c], eax
mov word [esp + 0x24], bx
mov dword [esp + 0x4c], edx
jge 0x5092ae
jae 0x50a0bf
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x174]
mov ebp, dword [ebp + eax*4]
movzx ecx, byte [ebp]
cmp cl, 0x12
jne 0x5092a7
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
test ecx, ecx
jle 0x5092a7
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
je 0x50927e
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x164], ecx
mov word [esp + 0x22], dx
cmp dx, bx
jne 0x508bc7
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
jmp 0x508acf
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x164]
movzx ebx, word [esp + 0x22]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x4c]
cmp eax, esi
jne 0x508bfe
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
mov esi, edi
mov edi, edx
mov edx, ebp
mov ebp, ebx
mov ebx, eax
jmp 0x508b16
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x160], edx
mov word [esp + 0x26], bx
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x508d49
mov ecx, dword [esp + 0x178]
cmp esi, ecx
jae 0x50a0aa
mov edi, ecx
mov ecx, dword [esp + 0x38]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x174]
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
jg 0x508ce8
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0x104]
lea edx, [ebp + ecx*4]
mov dword [esp + 0x15c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x508cb3
mov dword [ebp + ecx*4], esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x160]
mov esi, ecx
mov edi, ebx
mov dword [esp + 0x168], ebp
mov ecx, dword [esp + 0x54]
movzx ebx, word [esp + 0x26]
mov ebp, dword [esp + 0x50]
jmp 0x508beb
mov dword [esp + 0xac], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040f250
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x104]
mov edi, dword [esp + 0x178]
jmp 0x508c8b
mov dword [esp + 0x158], esi
lea eax, [0x780800]
mov dword [esp], eax
mov ebp, dword [esp + 0x168]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x178]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x5c]
jmp 0x508c67
mov dword [esp + 0x154], edi
mov ecx, dword [esp + 0x170]
mov edx, dword [ecx + 0x10]
lea ebx, [ecx + 0x10]
mov dword [esp + 0x150], ebx
test edx, edx
je 0x509253
mov ebp, dword [0xa08230]
mov esi, dword [edx + 0x10]
test ebp, ebp
jne 0x509207
mov dword [ecx + 0x10], esi
mov ebp, edi
mov edi, edx
mov esi, eax
xor eax, eax
call fcn.0044d9b1
mov dword [esp + 0xfc], edx
mov byte [edx], 3
movzx ecx, word [esp + 0x24]
mov word [edx + 2], cx
mov ecx, dword [edx + 0x1c]
mov edi, dword [edx + 0x14]
lea ebx, [edx + 0x14]
mov dword [esp + 0x14c], ebx
mov eax, dword [esp + 0x2c]
cmp eax, ecx
ja 0x5091bb
cmp eax, ecx
ja 0x50a0a3
mov dword [esp + 0x164], edi
mov dword [esp + 0xa8], ecx
mov dword [esp], edi
mov dword [esp + 4], ebp
shl eax, 2
mov dword [esp + 8], eax
call fcn.0044e0c0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0x1c], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x509191
mov edx, dword [esp + 0x164]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x4c]
jmp 0x508e27
inc edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
jge 0x508ea9
mov ebp, dword [esp + 0x178]
cmp edx, ebp
jae 0x50a09c
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x174]
mov ebx, dword [ecx + edx*4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x170]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.0050a0d0
mov eax, dword [0xa08230]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x508e8a
mov dword [ebx + edx*4], ecx
jmp 0x508e1b
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040f250
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
jmp 0x508e1b
mov eax, dword [esp + 0x4c]
cmp eax, ebx
ja 0x50a095
mov edx, dword [esp + 0x17c]
cmp ebx, edx
ja 0x50a095
mov ecx, dword [esp + 0x170]
mov dword [esp], ecx
sub edx, eax
mov esi, edx
neg edx
mov edi, eax
shl eax, 2
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x174]
add edx, eax
mov dword [esp + 4], edx
sub ebx, edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov byte [esp + 0x10], 0x13
call fcn.00508610
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x509171
mov dword [esp + 0xe4], edi
mov edx, dword [0xa08230]
mov ebx, dword [edi + 0x10]
test edx, edx
jne 0x509137
mov dword [ecx + 0x10], ebx
mov edx, eax
xor eax, eax
call fcn.0044d9b1
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xf4], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 0xc]
lea esi, [ecx + 4]
mov dword [esp + 0x148], esi
cmp ebp, 2
jl 0x5090e6
mov edi, 2
mov dword [esp + 0xa8], ebp
mov esi, dword [0xa08230]
lea ebp, [ebx + 4]
test esi, esi
jne 0x509088
mov ebp, dword [esp + 0xfc]
mov dword [ebx], ebp
mov dword [ebx + 4], edx
mov dword [ecx + 8], edi
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0xc], edx
mov edx, dword [0xa08230]
test edx, edx
jne 0x509067
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0x38]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jg 0x509021
mov esi, dword [esp + 0x168]
mov dword [esp + 0x3c], ebp
mov edi, ebx
mov ebx, dword [0xa08230]
lea ebp, [esi + edx*4]
test ebx, ebx
jne 0x508ff5
mov dword [esi + edx*4], ecx
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x3c]
mov ebp, esi
mov ecx, edi
mov edi, dword [esp + 0x178]
jmp 0x508c8f
mov dword [esp + 0x144], esi
mov dword [esp + 0xa8], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040f250
xor eax, eax
mov esi, dword [esp + 0x144]
mov edi, dword [esp + 0xa8]
jmp 0x508fdd
lea eax, [0x780800]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00439c80
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x38]
jmp 0x508fc7
mov eax, dword [esp + 0x148]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040f250
xor eax, eax
mov ecx, dword [esp + 0xf4]
jmp 0x508fb1
mov dword [esp + 0x140], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0x13c], ebp
mov dword [esp], ebx
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
call fcn.0040f250
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0xa4]
jmp 0x508f93
lea eax, [0x780800]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 2
call fcn.00439c80
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0x148]
jmp 0x508f6f
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040f250
lea eax, [0x78ab00]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.0040f760
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x508f40
lea eax, [0x78ab00]
mov dword [esp], eax
call fcn.0040e9e0
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x508f47
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
jmp 0x508e15
lea edx, [0x744100]
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00439c80
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x14c]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x508dbc
mov dword [esp + 0xec], edx
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.0040f250
lea eax, [0x78ab00]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
call fcn.0040f760
xor eax, eax
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x508d8d
lea eax, [0x78ab00]
mov dword [esp], eax
call fcn.0040e9e0
mov edx, dword [esp + 4]
xor eax, eax
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x508d8d
mov edx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
movzx ecx, word [ecx + 2]
and ecx, 1
mov dword [esp + 0x28], ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x5c]
jmp 0x508b9d
mov ecx, ebp
jmp 0x508b77
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor ebx, ebx
jmp 0x508bd7
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x3c]
jmp 0x5092dd
lea edi, [esi + 1]
mov esi, edx
mov edx, ebp
mov ebp, ecx
mov ecx, eax
mov eax, edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x164], ebp
mov edi, dword [esp + 0x38]
cmp eax, edi
jg 0x509976
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x100], edx
mov dword [esp + 0x48], ecx
jge 0x50996f
jae 0x50a08e
mov ebp, dword [esp + 0x168]
mov esi, dword [ebp + eax*4]
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x509928
xor ebp, ebp
test edx, edx
jne 0x509803
cmp eax, ecx
jne 0x509355
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
mov esi, eax
jmp 0x5092d0
mov dword [esp + 0x108], ebp
lea esi, [ecx + 1]
cmp eax, esi
jne 0x50947b
cmp ecx, edi
jae 0x50a080
lea edx, [ebx + 1]
mov esi, dword [esp + 0x168]
mov ecx, dword [esi + ecx*4]
mov esi, dword [esp + 0xa0]
cmp edx, esi
jg 0x509417
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x104]
lea eax, [edi + ebx*4]
mov dword [esp + 0x138], eax
mov eax, dword [0xa08230]
test eax, eax
jne 0x5093d8
mov dword [edi + ebx*4], ecx
mov eax, dword [esp + 0x60]
mov ecx, edi
mov ebx, edx
mov edi, dword [esp + 0x38]
mov edx, esi
jmp 0x50934e
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040f250
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x104]
jmp 0x5093c5
mov dword [esp + 0x158], ecx
lea eax, [0x780800]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x60]
jmp 0x5093a7
mov esi, ecx
jmp 0x5094a3
lea ecx, [edx + 1]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x38]
cmp ecx, eax
jge 0x509522
cmp ecx, edi
jae 0x50a079
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x168]
mov edx, dword [eax + ecx*4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x170]
mov dword [esp], edx
cmp ecx, esi
setne bl
mov byte [esp + 8], bl
call fcn.0050a340
mov eax, dword [0xa08230]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x509503
mov dword [ebx + edx*4], ecx
jmp 0x50947f
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040f250
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
jmp 0x50947f
cmp esi, eax
ja 0x50a072
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
ja 0x50a072
mov edx, dword [esp + 0x170]
mov dword [esp], edx
sub ecx, esi
mov ebp, esi
shl esi, 2
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
mov esi, dword [esp + 0x168]
add ecx, esi
mov dword [esp + 4], ecx
sub eax, ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov byte [esp + 0x10], 0x13
call fcn.00508610
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
lea edx, [ecx + 0x10]
test edi, edi
je 0x5097e3
mov dword [esp + 0xe8], edi
mov ebx, dword [0xa08230]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x5097b0
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.0044d9b1
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xf8], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
lea esi, [ecx + 4]
mov dword [esp + 0x134], esi
cmp ebx, 2
jl 0x50975f
mov edi, 2
mov eax, dword [0xa08230]
lea esi, [ebp + 4]
test eax, eax
jne 0x5096f5
mov eax, dword [esp + 0x100]
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
mov eax, dword [0xa08230]
test eax, eax
jne 0x5096d6
mov dword [ecx + 4], ebp
mov eax, dword [esp + 0xac]
lea edx, [eax + 1]
mov ebx, dword [esp + 0xa0]
cmp edx, ebx
jg 0x50968f
mov ebp, dword [esp + 0x164]
mov esi, dword [0xa08230]
lea edi, [ebp + eax*4]
test esi, esi
jne 0x509657
mov dword [ebp + eax*4], ecx
mov esi, ebx
mov edi, ebp
mov ebp, dword [esp + 0x108]
jmp 0x5093c5
mov dword [esp + 0x130], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ebx
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.0040f250
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x130]
jmp 0x509647
lea ecx, [0x780800]
mov dword [esp], ecx
mov ebp, dword [esp + 0x164]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00439c80
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xf8]
jmp 0x509635
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.0040f250
mov ecx, dword [esp + 0xf8]
jmp 0x509619
mov dword [esp + 0x12c], ebp
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x128], esi
mov dword [esp], ebp
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
call fcn.0040f250
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xa8]
jmp 0x509602
lea eax, [0x780800]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.00439c80
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x134]
jmp 0x5095e4
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040f250
lea eax, [0x78ab00]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0040f760
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x5095b5
lea eax, [0x78ab00]
mov dword [esp], eax
call fcn.0040e9e0
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x5095bc
mov dword [esp + 0xd8], ebp
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.00510bd0
movzx eax, byte [esp + 8]
test al, al
je 0x50991f
mov eax, dword [esp + 0x100]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x5098f6
mov edx, dword [eax + 0x18]
cmp edx, 1
jne 0x5098f6
mov edx, 1
test dl, dl
je 0x509878
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
jmp 0x5092d0
cmp cl, 0x11
jne 0x5098b0
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x5098b0
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
test ecx, ecx
jbe 0x50a087
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
jne 0x5098d6
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x5098d6
mov ecx, 1
test cl, cl
jne 0x50984b
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xd8]
mov edi, dword [esp + 0x38]
jmp 0x50933c
cmp dl, 4
jne 0x5098e2
mov ecx, 1
jmp 0x5098ac
cmp dl, 5
jne 0x5098ee
mov ecx, 1
jmp 0x5098ac
cmp dl, 6
sete cl
jmp 0x5098ac
cmp cl, 4
jne 0x509905
mov edx, 1
jmp 0x509847
cmp cl, 5
jne 0x509914
mov edx, 1
jmp 0x509847
cmp cl, 6
sete dl
jmp 0x509847
mov eax, dword [esp + 0x100]
jmp 0x5098b0
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x509961
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 4]
test ebp, ebp
jle 0x509961
mov ebx, dword [ebx]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x509953
mov ebx, dword [esp + 0xac]
xor ebp, ebp
jmp 0x509334
mov ebp, ebx
mov ebx, dword [esp + 0xac]
jmp 0x509334
mov ebx, dword [esp + 0xac]
mov ebp, esi
jmp 0x509334
xor ebp, ebp
jmp 0x50933c
mov eax, ebp
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp 0x50998f
inc ecx
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x168], ebp
mov dword [esp + 0x38], edi
cmp ecx, ebx
jg 0x509e96
jge 0x5099ce
jae 0x50a06b
mov eax, dword [eax + ecx*4]
movzx ebx, byte [eax]
cmp bl, 3
jne 0x509e6d
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x509e6d
mov eax, 1
test al, al
jne 0x509980
mov dword [esp + 0x58], ecx
cmp ecx, edx
jne 0x509aba
mov eax, dword [esp + 0xac]
cmp ecx, eax
jge 0x509ab3
jae 0x50a048
lea edx, [edi + 1]
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + ecx*4]
cmp edx, esi
jg 0x509a5a
mov eax, dword [0xa08230]
lea ecx, [ebp + edi*4]
test eax, eax
jne 0x509a22
mov dword [ebp + edi*4], ebx
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov edi, edx
mov edx, eax
jmp 0x509980
mov dword [esp + 0x124], ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040f250
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x88]
jmp 0x509a12
mov dword [esp + 0x84], edi
mov dword [esp + 0x158], ebx
lea eax, [0x780800]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00439c80
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x158]
mov edi, dword [esp + 0x84]
jmp 0x509a00
mov edx, edi
jmp 0x509a12
lea eax, [edx + 1]
cmp ecx, eax
jne 0x509b95
mov eax, dword [esp + 0xac]
cmp edx, eax
jae 0x50a064
lea ebx, [edi + 1]
mov eax, dword [esp + 0x164]
mov edx, dword [eax + edx*4]
cmp ebx, esi
jg 0x509b46
mov dword [esp + 0x38], ebx
mov eax, dword [0xa08230]
lea ebx, [ebp + edi*4]
test eax, eax
jne 0x509b0f
mov dword [ebp + edi*4], edx
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov edx, dword [esp + 0x38]
mov edi, edx
jmp 0x5099e3
mov dword [esp + 0x120], ebp
mov dword [esp + 0x80], esi
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040f250
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x80]
jmp 0x509b04
mov dword [esp + 0x158], edx
lea eax, [0x780800]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.00439c80
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x158]
mov edi, dword [esp + 0x38]
jmp 0x509ae5
mov dword [esp + 0xa8], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0xac]
jmp 0x509bd5
inc edx
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x164]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
mov esi, eax
mov eax, edx
mov edx, esi
mov esi, dword [esp + 0x7c]
cmp eax, ecx
jge 0x509c1d
cmp edx, ebx
jae 0x50a05d
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + edx*4]
movzx edi, byte [esi]
cmp eax, ebx
jae 0x50a05d
mov ebp, dword [ebp + eax*4]
movzx ebx, byte [ebp]
xchg edi, eax
cmp al, bl
xchg edi, eax
jae 0x509c09
mov edx, eax
jmp 0x509bad
jne 0x509c15
mov ebx, dword [esi + 0x18]
mov ebp, dword [ebp + 0x18]
cmp ebx, ebp
jl 0x509c05
mov ebx, edx
mov edx, eax
mov eax, ebx
jmp 0x509bad
mov eax, dword [esp + 0x40]
cmp eax, ebx
jae 0x50a056
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + eax*4]
lea edi, [ebp + eax*4]
cmp edx, ebx
jae 0x50a056
mov dword [esp + 0x11c], edi
mov edi, dword [0xa08230]
mov ebx, dword [ebp + edx*4]
lea ecx, [ebp + edx*4]
test edi, edi
jne 0x509e22
mov dword [ebp + eax*4], ebx
mov dword [ebp + edx*4], esi
mov ecx, dword [esp + 0xa8]
jmp 0x509c79
lea edx, [eax + 1]
mov eax, dword [esp + 0x40]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
cmp ecx, edx
jge 0x509d37
mov ebx, dword [ebp + eax*4]
mov esi, dword [esp + 0xac]
cmp ecx, esi
jae 0x50a04f
mov dword [esp + 0x44], ecx
mov eax, dword [ebp + ecx*4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0050c1d0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + eax*4]
test byte [edx], al
mov ebx, dword [0xa08230]
lea ebp, [edx + 0x10]
mov dword [esp + 0x118], ebp
mov esi, dword [esp + 0x170]
mov edi, dword [esi + 0x10]
lea ebp, [esi + 0x10]
test ebx, ebx
jne 0x509ce5
mov dword [edx + 0x10], edi
mov dword [esi + 0x10], edx
jmp 0x509c6e
mov dword [esp + 0xf0], edx
mov dword [esp + 0x114], ebp
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040f250
mov eax, dword [esp + 0x114]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x170]
jmp 0x509c6e
mov ecx, dword [ebp + eax*4]
mov dword [esp], ecx
call fcn.005083f0
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + edx*4]
mov ebp, dword [esp + 0x7c]
cmp ecx, ebp
jg 0x509dd0
mov esi, dword [esp + 0x168]
mov edi, dword [0xa08230]
lea ebx, [esi + eax*4]
test edi, edi
jne 0x509d97
mov dword [esi + eax*4], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x58]
mov ebx, ebp
mov ebp, esi
mov esi, ebx
jmp 0x509b08
mov dword [esp + 0x110], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040f250
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x110]
jmp 0x509d84
mov dword [esp + 0x158], edx
lea edx, [0x780800]
mov dword [esp], edx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00439c80
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
jmp 0x509d67
mov dword [esp + 0x158], esi
mov dword [esp + 0x10c], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040f250
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
call fcn.0040f250
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x164]
jmp 0x509c65
cmp bl, 4
jne 0x509e7c
mov eax, 1
jmp 0x5099ca
cmp bl, 5
jne 0x509e8b
mov eax, 1
jmp 0x5099ca
cmp bl, 6
sete al
jmp 0x5099ca
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x509ea2
mov ebp, ecx
mov ecx, ebx
cmp ecx, edi
jge 0x509ff4
mov dword [esp + 0x164], ebp
lea ebx, [ecx + 1]
cmp ebx, edi
jge 0x509fed
cmp ecx, edi
jae 0x50a041
mov ebp, dword [eax + ecx*4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x509fe6
cmp ebx, edi
jae 0x50a041
mov ebp, dword [eax + ecx*4 + 4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x509ef6
mov ecx, dword [esp + 0x164]
jmp 0x509e9e
cmp ecx, edi
jae 0x50a03a
mov dword [esp + 0x70], ebx
lea ebp, [edx + 1]
mov ecx, dword [eax + ecx*4]
cmp ebp, esi
jg 0x509f81
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb0]
mov eax, dword [0xa08230]
mov edi, dword [esp + 0x104]
lea ebx, [edi + edx*4]
test eax, eax
jne 0x509f5c
mov dword [edi + edx*4], ecx
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x104]
mov edx, ebp
jmp 0x509e9e
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040f250
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x104]
jmp 0x509f3f
mov dword [esp + 0x64], edx
mov dword [esp + 0x158], ecx
lea eax, [0x780800]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00439c80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x168]
jmp 0x509f28
cmp ecx, edi
jmp 0x509ef8
cmp ecx, edi
jmp 0x509ef8
mov dword [esp + 0x180], ebp
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], esi
add esp, 0x16c
ret
mov eax, dword [esp + 0x174]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ecx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
add esp, 0x16c
ret
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.004269c0
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.004269c0
ud2
call fcn.00426960
ud2
call fcn.004269c0
ud2
call fcn.00426960
ud2
call fcn.004269c0
ud2
call fcn.00426960
ud2
call fcn.00426960
ud2
call fcn.0044be50
jmp fcn.00508a50