Function at 0x513f11
Capabilities:
Reference sql statements

Disassembly:
sub esp, 0x24
push ebp
mov ebp, ecx
mov dword [esp + 0x18], ebp
call fcn.00514800
test eax, eax
je 0x5147b5
inc dword [ebp + 0xe930]
mov ecx, dword [ebp + 0xe940]
test ecx, ecx
je 0x5147b5
mov eax, dword [ebp + 0xe96c]
xor edx, edx
imul eax, dword [0xc6215c]
shl ecx, 8
push ebx
push esi
mov esi, 0x1f
push edi
lea eax, [eax + eax*4]
div ecx
mov dword [ebp + 0xe91c], eax
mov eax, dword [ebp + 0xe910]
cmp eax, 0x20
cmovb esi, eax
test byte [ebp + 0xe920], 0x20
je 0x5134a8
cmp dword [ebp + 0xe928], 0
je 0x5134a8
mov eax, 6
cmp esi, eax
cmovl esi, eax
mov ecx, dword [ebp + 0xe95c]
cmp ecx, 0x80
jle 0x5134cc
lea eax, [ecx - 0x80]
lea ecx, [esi + 4]
imul eax, ecx
cdq
and edx, 0xf
lea ecx, [edx + eax]
sar ecx, 4
sub ecx, 0xffffff80
sar esi, 1
test byte [0xc65024], 4
je 0x5134e0
mov esi, dword [esi*4 + str.____hpx]
jmp 0x5134e7
mov esi, dword [esi*4 + 0x5715b0]
mov eax, dword [ebp + 0xe964]
add eax, 0x10
imul eax, ecx
mov ecx, 0x200
shr eax, 6
cmp eax, ecx
cmova eax, ecx
test dword [ebp + 0xe90c], 0x400
je 0x513526
mov ecx, dword [ebp + 0xe988]
test ecx, ecx
je 0x513526
push ecx
push dword [ebp + 0xe984]
push eax
call fcn.00514ae0
add esp, 0xc
shl eax, 7
xor edx, edx
div esi
mov ecx, 0x180
mov dword [ebp + 0xe914], 0
cmp eax, ecx
mov esi, ebp
cmova eax, ecx
mov dword [esp + 0x30], eax
lea ebx, [ecx - 0x80]
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, dword [esi + 0x24]
test edx, 0x400
je 0x51357f
mov eax, dword [esi + 0x7c]
or eax, dword [esi + 0x14]
or eax, dword [esi + 0x10]
mov eax, dword [esp + 0x18]
jne 0x51357f
mov dword [esi + 0x20], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x54], 0
test edx, 0x100
jne 0x5146c7
cmp eax, dword [ebp + 0xe910]
jb 0x51359d
cmp dword [esi + 0x20], 0
je 0x5146c7
mov ecx, dword [esi + 0x78]
movsx eax, word [esi + 0xd2]
add ecx, eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], ecx
jns 0x5135c5
mov dword [esi + 0x70], 0
jmp 0x5135d3
cmp ecx, 0x100
mov eax, ecx
cmovg eax, ebx
mov dword [esi + 0x70], eax
cmp dword [esi + 0x80], 0
mov ebx, edx
mov dword [esi + 0x5c], 0
je 0x514079
cmp dword [esi + 0x20], 0
je 0x514079
movsx ecx, word [esi + 0xd0]
xor edi, edi
mov eax, dword [esi + 0x74]
add eax, ecx
cmovns edi, eax
mov eax, 0x100
cmp edi, 0x100
cmovg edi, eax
test edx, 0x20000
je 0x5136ba
mov edx, dword [esi + 0xc8]
and edx, 0x3f
test edi, edi
jle 0x51368a
mov eax, dword [ebp + 0xe920]
movzx ebx, byte [esi + 0xe5]
and al, 4
movzx ecx, al
movzx eax, byte [esi + 0xe3]
neg ecx
sbb ecx, ecx
and eax, 3
add ecx, 6
sub eax, 1
je 0x51367b
sub eax, 1
je 0x513671
sub eax, 1
je 0x513667
movsx eax, word [edx*2 + 0x570a30]
jmp 0x513683
movsx eax, word [edx*2 + 0x570bb0]
jmp 0x513683
movsx eax, word [edx*2 + 0x570b30]
jmp 0x513683
movsx eax, word [edx*2 + 0x570ab0]
imul eax, ebx
sar eax, cl
add edi, eax
cmp dword [ebp + 0xe92c], 0
jne 0x5136a8
test dword [ebp + 0xe920], 0x122
je 0x5136ba
test byte [ebp + 0xe90c], 4
jne 0x5136ba
movzx eax, byte [esi + 0xe4]
add eax, edx
and eax, 0x3f
mov dword [esi + 0xc8], eax
cmp byte [esi + 0xd8], 0x12
mov dword [esp + 0x2c], edi
jne 0x513724
movzx ecx, byte [esi + 0xf3]
mov ebx, dword [ebp + 0xe920]
mov edx, ecx
shr edx, 4
and ecx, 0xf
add ecx, edx
test bl, 0x20
je 0x5136ec
test byte [ebp + 0xe90c], 4
je 0x5136f0
add ecx, 2
inc edx
movzx eax, byte [esi + 0xf2]
cmp eax, ecx
sbb ecx, ecx
and ecx, eax
cmp dword [ebp + 0xe92c], 0
jne 0x51370b
test bl, 0x22
je 0x51371d
mov al, cl
inc al
cmp ecx, edx
mov byte [esi + 0xf2], al
sbb edi, edi
and edi, dword [esp + 0x2c]
or dword [esi + 0x24], 0x1000000
test edi, edi
jns 0x51372c
xor edi, edi
jmp 0x51373a
cmp edi, 0x100
mov eax, 0x100
cmovg edi, eax
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x24]
shl edi, 6
test ecx, ecx
je 0x513a7b
test edx, 0x200000
je 0x513836
mov al, byte [ecx + 0x22c]
test al, al
je 0x513836
mov edx, dword [esi + 0x94]
mov dword [esp + 0x28], edx
xor edx, edx
movzx ebx, al
sub ebx, 1
je 0x51379b
add ecx, 0xc
nop
movzx eax, word [ecx]
cmp dword [esp + 0x28], eax
jle 0x513793
inc edx
add ecx, 2
cmp edx, ebx
jb 0x513780
jmp 0x513795
mov ebx, edx
mov ecx, dword [esi + 0x8c]
movzx eax, word [ecx + ebx*2 + 0xc]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x28], eax
jl 0x5137b7
movzx ecx, byte [ebx + ecx + 0xcc]
shl ecx, 2
jmp 0x513816
test ebx, ebx
je 0x5137d8
mov edx, dword [esi + 0x8c]
add ecx, ebx
mov dword [esp + 0x2c], ecx
movzx ecx, byte [ecx + 0xcb]
movzx edx, word [edx + ebx*2 + 0xa]
shl ecx, 2
jmp 0x5137ea
mov ebp, dword [esp + 0x24]
xor ecx, ecx
xor edx, edx
add ebx, dword [esi + 0x8c]
mov dword [esp + 0x2c], ebx
cmp eax, edx
jbe 0x513816
mov ebx, dword [esp + 0x28]
cmp ebx, edx
jle 0x513816
mov eax, dword [esp + 0x2c]
sub ebx, edx
movzx eax, byte [eax + 0xcc]
shl eax, 2
sub eax, ecx
imul eax, ebx
mov ebx, dword [esp + 0x20]
sub ebx, edx
cdq
idiv ebx
add ecx, eax
xor eax, eax
test ecx, ecx
cmovns eax, ecx
mov ecx, 0x100
cmp eax, 0x100
cmovg eax, ecx
mov ecx, dword [esi + 0x8c]
imul edi, eax
sar edi, 8
mov edx, dword [esi + 0x24]
mov dword [esp + 0x1c], edx
test edx, 0x400000
je 0x513944
mov al, byte [ecx + 0x22d]
test al, al
je 0x513944
mov ecx, dword [esi + 0x98]
xor edx, edx
movzx ebx, al
mov dword [esp + 0x2c], ecx
sub ebx, 1
je 0x513889
mov ecx, dword [esi + 0x8c]
add ecx, 0x4c
movzx eax, word [ecx]
cmp dword [esp + 0x2c], eax
jle 0x513887
inc edx
add ecx, 2
cmp edx, ebx
jb 0x513874
jmp 0x513889
mov ebx, edx
mov ecx, dword [esi + 0x8c]
mov edx, dword [esp + 0x2c]
movzx eax, word [ecx + ebx*2 + 0x4c]
movzx ecx, byte [ebx + ecx + 0xec]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp edx, eax
jge 0x5138ee
test ebx, ebx
je 0x5138c5
mov eax, dword [esi + 0x8c]
movzx ecx, byte [ebx + eax + 0xeb]
movzx eax, word [eax + ebx*2 + 0x4a]
jmp 0x5138cc
mov ecx, 0x80
xor eax, eax
cmp dword [esp + 0x20], eax
jbe 0x5138ee
cmp edx, eax
jle 0x5138ee
mov ebx, dword [esp + 0x28]
sub edx, eax
sub dword [esp + 0x20], eax
sub ebx, ecx
imul ebx, edx
mov eax, ebx
cdq
idiv dword [esp + 0x20]
add ecx, eax
mov ebx, dword [esi + 0x78]
xor eax, eax
test ecx, ecx
cmovns eax, ecx
mov ecx, 0x40
cmp eax, 0x40
cmovg eax, ecx
lea ecx, [eax - 0x20]
cmp ebx, 0x80
jl 0x51391a
mov eax, 0x100
sub eax, ebx
imul eax, ecx
jmp 0x51391f
imul ecx, ebx
mov eax, ecx
cdq
xor ecx, ecx
and edx, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 5
add eax, ebx
cmovns ecx, eax
mov eax, 0x100
cmp ecx, 0x100
cmovg ecx, eax
mov dword [esi + 0x70], ecx
test edx, 0x400
je 0x51397e
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x7c]
mov eax, dword [eax]
test eax, eax
je 0x513977
add eax, eax
sub ecx, eax
mov dword [esi + 0x7c], ecx
test ecx, ecx
jg 0x51396f
mov dword [esi + 0x7c], 0
xor ecx, ecx
imul edi, ecx
sar edi, 0x10
jmp 0x51397e
xor eax, eax
test ecx, ecx
cmove edi, eax
mov eax, dword [esi + 0x8c]
mov bl, byte [eax + 0x247]
test bl, bl
je 0x5139da
mov edx, dword [esi + 0x70]
test edx, edx
je 0x5139d6
mov cl, byte [esi + 0xd4]
test cl, cl
je 0x5139d6
movzx eax, byte [eax + 0x248]
movzx ecx, cl
sub ecx, eax
movsx eax, bl
dec ecx
imul ecx, eax
mov eax, ecx
test eax, eax
jns 0x5139bb
add eax, 7
sar eax, 3
xor ecx, ecx
add eax, edx
cmovns ecx, eax
mov eax, 0x100
cmp ecx, 0x100
cmovg ecx, eax
mov dword [esi + 0x70], ecx
mov edx, dword [esp + 0x1c]
test edi, edi
je 0x513a09
mov eax, dword [esi + 0xac]
imul eax, dword [esi + 0xa8]
push 0x100000
push eax
mov eax, dword [ebp + 0xe960]
imul eax, edi
push eax
call fcn.00514ae0
mov edx, dword [esi + 0x24]
add esp, 0xc
mov dword [esi + 0x6c], eax
mov ebx, dword [esi + 0x80]
mov eax, dword [ebp + 0xe974]
cmp ebx, eax
jge 0x513a21
mov dword [esi + 0x80], eax
mov ebx, eax
and edx, 0x180000
cmp edx, 0x180000
jne 0x513a4d
push dword [esi + 0x84]
mov ecx, ebp
push dword [esi + 0xb0]
push ebx
call fcn.00512b40
push eax
mov ecx, ebp
call fcn.00512d20
mov ebx, eax
cmp byte [esi + 0xd8], 1
jne 0x513abc
mov eax, dword [ebp + 0xe92c]
xor edx, edx
mov ecx, 3
div ecx
sub edx, 1
je 0x513a93
sub edx, 1
jne 0x513abc
movzx ecx, byte [esi + 0xd9]
and ecx, 0xf
jmp 0x513a9d
test edx, 0x400
je 0x5139da
mov dword [esi + 0x7c], 0
jmp 0x513a09
movzx ecx, byte [esi + 0xd9]
shr ecx, 4
push dword [esi + 0x84]
movzx eax, byte [esi + 0xd4]
push dword [esi + 0xb0]
add ecx, eax
push ecx
mov ecx, ebp
call fcn.00512d20
mov ebx, eax
test dword [ebp + 0xe90c], 0x10000
je 0x513ae5
cmp ebx, 0x1c4
jge 0x513ad7
mov ebx, 0x1c4
jmp 0x513ae5
cmp ebx, 0xd60
mov eax, 0xd60
cmovg ebx, eax
mov ecx, dword [esi + 0x8c]
test ecx, ecx
je 0x513c51
test dword [esi + 0x24], 0x800000
je 0x513c51
mov dl, byte [ecx + 0x22e]
test dl, dl
je 0x513c51
mov eax, dword [esi + 0x9c]
movzx edi, dl
xor edx, edx
mov dword [esp + 0x28], eax
sub edi, 1
je 0x513b4b
add ecx, 0x8c
nop dword [eax + eax]
movzx eax, word [ecx]
cmp dword [esp + 0x28], eax
jle 0x513b43
inc edx
add ecx, 2
cmp edx, edi
jb 0x513b30
jmp 0x513b45
mov edi, edx
mov ecx, dword [esi + 0x8c]
movzx eax, word [ecx + edi*2 + 0x8c]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x28], eax
jl 0x513b6e
movzx eax, byte [edi + ecx + 0x10c]
lea ecx, [eax*8 - 0x100]
jmp 0x513bd5
test edi, edi
je 0x513b9b
lea eax, [edi + ecx]
mov dword [esp + 0x20], eax
movzx eax, byte [eax + 0x10b]
lea ecx, [eax*8 - 0x100]
mov eax, dword [esi + 0x8c]
movzx edx, word [eax + edi*2 + 0x8a]
mov eax, dword [esp + 0x20]
jmp 0x513ba7
mov eax, dword [esi + 0x8c]
xor ecx, ecx
xor edx, edx
add eax, edi
cmp dword [esp + 0x2c], edx
jbe 0x513bd5
mov edi, dword [esp + 0x28]
cmp edi, edx
jle 0x513bd5
movzx eax, byte [eax + 0x10c]
sub edi, edx
lea eax, [eax*8 - 0x100]
sub eax, ecx
imul eax, edi
mov edi, dword [esp + 0x2c]
sub edi, edx
cdq
idiv edi
add ecx, eax
cmp ecx, 0xffffff00
jge 0x513be4
mov ecx, 0xffffff00
jmp 0x513bf2
cmp ecx, 0x100
mov eax, 0x100
cmovg ecx, eax
mov eax, dword [esi + 0x8c]
test dword [eax + 4], 0x400
je 0x513c18
mov eax, dword [esi + 0x24]
shr eax, 0xe
push ecx
not eax
mov ecx, ebp
and eax, 1
push eax
push esi
call fcn.0053dbd0
jmp 0x513c51
mov eax, 0xff
push 0x10000
test ecx, ecx
jns 0x513c36
neg ecx
cmp ecx, eax
cmovg ecx, eax
push dword [ecx*4 + 0x570db0]
jmp 0x513c46
cmp ecx, 0xff
cmovg ecx, eax
push dword [ecx*4 + 0x5711b0]
push ebx
call fcn.00514ae0
mov ebx, eax
add esp, 0xc
test dword [esi + 0x24], 0x10000
je 0x513d9a
movzx eax, byte [esi + 0xe0]
mov edx, dword [esi + 0xc4]
and eax, 3
mov dword [esp + 0x20], edx
sub eax, 1
je 0x513c9f
sub eax, 1
je 0x513c95
sub eax, 1
je 0x513c8b
movzx eax, word [edx*2 + 0x570a30]
jmp 0x513ca7
movzx eax, word [edx*2 + 0x570bb0]
jmp 0x513ca7
movzx eax, word [edx*2 + 0x570b30]
jmp 0x513ca7
movzx eax, word [edx*2 + 0x570ab0]
cwde
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xe920]
cmp eax, 0x20
jne 0x513cc3
test byte [ebp + 0xe90c], 4
lea ecx, [eax - 0x19]
je 0x513cc8
mov ecx, 6
movzx edi, byte [esi + 0xe2]
imul edi, dword [esp + 0x2c]
sar edi, cl
test byte [ebp + 0xe90c], 0x10
je 0x513d6b
test al, 0x20
je 0x513d6b
mov dword [esp + 0x2c], edi
push 0x10000
test edi, edi
jns 0x513d2e
neg edi
mov eax, edi
mov dword [esp + 0x30], edi
sar eax, 2
push dword [eax*4 + 0x5711b0]
push ebx
call fcn.00514ae0
mov edi, eax
add esp, 0xc
mov eax, dword [esp + 0x2c]
sub edi, ebx
and eax, 3
je 0x513d67
push 0x10000
push dword [eax*4 + 0x570d70]
jmp 0x513d5a
sar edi, 2
push dword [edi*4 + 0x570db0]
push ebx
call fcn.00514ae0
mov edi, eax
add esp, 0xc
mov eax, dword [esp + 0x2c]
sub edi, ebx
and eax, 3
je 0x513d67
push 0x10000
push dword [eax*4 + 0x570d30]
push ebx
call fcn.00514ae0
sub eax, ebx
add esp, 0xc
add edi, eax
mov edx, dword [esp + 0x20]
add ebx, edi
cmp dword [ebp + 0xe92c], 0
jne 0x513d88
test byte [ebp + 0xe920], 0x20
je 0x513d9a
test byte [ebp + 0xe90c], 4
jne 0x513d9a
movzx eax, byte [esi + 0xe1]
add eax, edx
and eax, 0x3f
mov dword [esi + 0xc4], eax
mov edx, dword [esi + 0x24]
test edx, 0x40000
je 0x513e39
mov edi, dword [esi + 0xcc]
movzx ecx, byte [esi + 0xe6]
and ecx, 3
lea eax, [edi + 0x10]
shr eax, 2
and eax, 0x3f
sub ecx, 1
je 0x513def
sub ecx, 1
je 0x513de5
sub ecx, 1
je 0x513ddb
movzx edx, word [eax*2 + 0x570a30]
jmp 0x513df7
movzx edx, word [eax*2 + 0x570bb0]
jmp 0x513df7
movzx edx, word [eax*2 + 0x570b30]
jmp 0x513df7
movzx edx, word [eax*2 + 0x570ab0]
movzx eax, byte [esi + 0xe7]
movzx ecx, byte [esi + 0xe8]
add eax, edi
mov dword [esi + 0xcc], eax
movsx eax, dx
mov edx, dword [esi + 0x24]
imul ecx, eax
mov eax, dword [esi + 0x70]
add ecx, 2
sar ecx, 3
add eax, ecx
xor ecx, ecx
test eax, eax
cmovns ecx, eax
mov eax, 0x100
cmp ecx, 0x100
cmovg ecx, eax
mov dword [esi + 0x70], ecx
mov edi, dword [esi + 0x90]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
test edi, edi
je 0x513f9c
mov al, byte [edi + 0x28]
test al, al
je 0x513f9c
mov cl, byte [edi + 0x27]
test cl, cl
jne 0x513e64
movzx edx, al
jmp 0x513ea5
test byte [ebp + 0xe920], 0x20
je 0x513e75
movzx eax, cl
shl eax, 3
jmp 0x513e8a
test edx, 0x200
jne 0x513e90
movzx eax, al
xor edx, edx
shl eax, 8
movzx ecx, cl
div ecx
add dword [esi + 0xbc], eax
mov edx, dword [esi + 0xbc]
mov eax, edx
movzx ecx, byte [edi + 0x28]
sar eax, 8
cmp eax, ecx
jle 0x513eae
mov edx, ecx
shl edx, 8
mov dword [esi + 0xbc], edx
movzx ecx, byte [edi + 0x29]
add ecx, dword [esi + 0xc0]
mov dword [esi + 0xc0], ecx
movzx eax, byte [edi + 0x26]
dec eax
mov dword [esp + 0x28], ecx
cmp eax, 3
ja case.default.0x513ecc
jmp dword [eax*4 + 0x5147ec]
mov eax, ecx
and eax, 0x3f
movsx ecx, word [eax*2 + 0x570bb0]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esi + 0xc0], eax
jmp 0x513f2d
shr ecx, 1
mov dword [esp + 0x28], ecx
mov ecx, 0xffffffc0
sub ecx, dword [esp + 0x28]
and ecx, 0x7f
sub ecx, 0x40
jmp 0x513f2d
shr ecx, 1
sub ecx, 0x40
and ecx, 0x7f
sub ecx, 0x40
jmp 0x513f2d
test cl, 0x80
mov eax, 0x40
mov ecx, 0xffffffc0
cmovne ecx, eax
jmp 0x513f2d
movzx eax, cl
movsx ecx, byte [eax + 0x570c30]
imul ecx, edx
sar ecx, 8
test byte [ebp + 0xe920], 0x20
je 0x513f93
test ecx, ecx
jns 0x513f57
neg ecx
mov eax, ecx
sar eax, 8
mov edx, dword [eax*4 + 0x570db0]
mov eax, dword [eax*4 + 0x570db4]
jmp 0x513f6a
mov eax, ecx
sar eax, 8
mov edx, dword [eax*4 + 0x5711b0]
mov eax, dword [eax*4 + 0x5711b4]
sub eax, edx
sar ecx, 2
and ecx, 0x3f
imul eax, ecx
push 0x100
sar eax, 6
add eax, edx
push eax
push ebx
call fcn.00514ae0
mov ebx, eax
add esp, 0xc
movzx ecx, bl
sar ebx, 8
jmp 0x513f9c
sar ecx, 6
add ebx, ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0xe920]
cmp ebx, dword [ebp + 0xe974]
jg 0x513fc1
test al, 2
je 0x513fbb
mov dword [esi + 0x20], 0
mov eax, dword [ebp + 0xe920]
mov ebx, dword [ebp + 0xe974]
cmp ebx, dword [ebp + 0xe978]
jle 0x513ff2
test al, 0x20
jne 0x513fd5
cmp ebx, 0x100000
jl 0x513fea
or dword [esi + 0x24], 0x400
mov dword [esi + 0x7c], 0
mov dword [esi + 0x6c], 0
mov ebx, dword [ebp + 0xe978]
xor ecx, ecx
push ecx
push dword [esi + 0x84]
mov ecx, ebp
push ebx
call fcn.00512ee0
test byte [ebp + 0xe920], 0x20
je 0x514026
cmp eax, 0x100
jae 0x514026
or dword [esi + 0x24], 0x400
mov dword [esi + 0x7c], 0
mov dword [esi + 0x6c], 0
push dword [0xc6215c]
push 0x10000
push eax
call fcn.00514ae0
add esp, 0xc
lea ecx, [eax - 0xffb0]
cmp ecx, 0xe0
mov ecx, 0x10000
cmovbe eax, ecx
mov ecx, dword [ebp + 0xe968]
cmp ecx, 0x80
je 0x514062
imul eax, ecx
shr eax, 7
mov ebx, dword [esi + 0x24]
cmp eax, 0xff0000
mov ecx, 0xff0000
cmova eax, ecx
inc eax
and eax, 0xfffffffc
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x8c]
test edx, edx
je 0x514358
mov edi, dword [esi + 0x24]
test edi, 0x200000
je 0x514216
mov eax, dword [esi + 0x94]
mov ebx, edi
inc eax
mov dword [esi + 0x94], eax
test byte [edx + 4], 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
je 0x514159
movzx eax, byte [edx + 0x230]
cmp dword [ebp + 0xe920], 4
movzx ecx, word [edx + eax*2 + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [esp + 0x2c], eax
jne 0x514159
movzx eax, byte [edx + 0x22f]
movzx ecx, word [edx + eax*2 + 0xc]
mov dword [esi + 0x94], ecx
mov ah, byte [edx + 0x230]
mov al, byte [edx + 0x22f]
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x13], ah
mov dword [esp + 0x14], ecx
cmp ah, al
jne 0x514159
movzx eax, al
mov dword [esp + 0x14], ecx
cmp byte [eax + edx + 0xcc], 0
jne 0x514159
test byte [ebp + 0xe920], 4
je 0x51413f
movzx eax, byte [edx + 0x22c]
mov dword [esp + 0x14], ecx
movzx ecx, byte [esp + 0x13]
inc ecx
cmp ecx, eax
jne 0x514159
mov ecx, dword [esp + 0x2c]
mov ebx, edi
mov dword [esi + 0x7c], 0
or ebx, 0x400
mov edi, ecx
mov dword [esi + 0x24], ebx
mov dword [esp + 0x14], edi
jmp 0x51415d
mov edi, dword [esp + 0x14]
mov ecx, ebx
and ecx, 0x200
test byte [edx + 4], 2
je 0x514199
test ecx, ecx
jne 0x514199
movzx eax, byte [edx + 0x232]
movzx eax, word [edx + eax*2 + 0xc]
inc eax
cmp edi, eax
jne 0x514192
movzx eax, byte [edx + 0x231]
movzx eax, word [edx + eax*2 + 0xc]
mov dword [esi + 0x94], eax
mov edi, ebx
jmp 0x514216
movzx eax, byte [edx + 0x22c]
mov edi, ebx
movzx eax, word [edx + eax*2 + 0xa]
cmp dword [esp + 0x14], eax
jbe 0x514216
test byte [ebp + 0xe920], 0x20
jne 0x5141ba
test ecx, ecx
je 0x5141c3
or ebx, 0x400
mov dword [esi + 0x24], ebx
movzx eax, byte [edx + 0x22c]
mov edi, ebx
movzx eax, word [edx + eax*2 + 0xa]
mov dword [esi + 0x94], eax
movzx eax, byte [edx + 0x22c]
cmp byte [eax + edx + 0xcb], 0
jne 0x514216
mov eax, dword [esp + 0x18]
cmp eax, dword [ebp + 0xe910]
jae 0x5141fd
test byte [ebp + 0xe920], 0x20
je 0x514216
mov edi, ebx
mov dword [esi + 0x7c], 0
or edi, 0x400
mov dword [esi + 0x6c], 0
mov dword [esi + 0x24], edi
test edi, 0x400000
je 0x5142ba
mov eax, dword [esi + 0x98]
inc eax
mov dword [esi + 0x98], eax
mov ebx, eax
test byte [edx + 4], 0x20
mov dword [esp + 0x2c], eax
je 0x51426a
movzx eax, byte [edx + 0x234]
cmp dword [ebp + 0xe920], 4
movzx ecx, word [edx + eax*2 + 0x4c]
lea eax, [ecx + 1]
cmove eax, ecx
cmp ebx, eax
jne 0x51426a
movzx eax, byte [edx + 0x233]
movzx ebx, word [edx + eax*2 + 0x4c]
mov dword [esi + 0x98], ebx
test byte [edx + 4], 0x10
je 0x51429d
movzx eax, byte [edx + 0x236]
movzx eax, word [edx + eax*2 + 0x4c]
inc eax
cmp ebx, eax
jne 0x51429d
test edi, 0x200
jne 0x51429d
movzx eax, byte [edx + 0x235]
movzx eax, word [edx + eax*2 + 0x4c]
mov dword [esi + 0x98], eax
jmp 0x5142ba
movzx eax, byte [edx + 0x22d]
mov ecx, dword [esi + 0x98]
movzx eax, word [edx + eax*2 + 0x4a]
cmp ebx, eax
cmova ecx, eax
mov dword [esi + 0x98], ecx
mov ebx, edi
test edi, 0x800000
je 0x514358
mov ebx, dword [esi + 0x9c]
inc ebx
mov dword [esi + 0x9c], ebx
mov ecx, ebx
test dword [edx + 4], 0x100
je 0x514308
movzx eax, byte [edx + 0x238]
movzx eax, word [edx + eax*2 + 0x8c]
cmp ebx, eax
jb 0x514308
movzx eax, byte [edx + 0x237]
movzx ecx, word [edx + eax*2 + 0x8c]
mov dword [esi + 0x9c], ecx
test byte [edx + 4], 0x80
je 0x51433b
test edi, 0x200
jne 0x51433b
movzx eax, byte [edx + 0x23a]
movzx eax, word [edx + eax*2 + 0x8c]
inc eax
cmp ecx, eax
jne 0x514356
movzx eax, byte [edx + 0x239]
movzx eax, word [edx + eax*2 + 0x8c]
jmp 0x514350
movzx eax, byte [edx + 0x22e]
mov ebx, edi
movzx eax, word [edx + eax*2 + 0x8a]
cmp ecx, eax
jbe 0x514358
mov dword [esi + 0x9c], eax
mov ebx, edi
mov edx, dword [esi + 0x6c]
and ebx, 0xffff7fff
mov dword [esi + 0x24], ebx
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x514376
cmp dword [esi + 0x14], edx
jne 0x514376
cmp dword [esi + 0x10], edx
je 0x51437f
or ebx, 0x8000
mov dword [esi + 0x24], ebx
mov edi, dword [esi + 0xc]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esi + 0x28]
sar eax, 0x10
inc eax
cmp eax, ecx
jl 0x514398
and ebx, 0xfffffffd
mov dword [esi + 0x24], ebx
mov eax, dword [esi + 0x60]
mov dword [esi + 0x68], 0
mov dword [esi + 0x64], 0
test eax, eax
je 0x51468b
cmp dword [esi + 0x20], 0
je 0x51468b
test edi, edi
je 0x51468b
mov dword [esi], eax
cmp dword [0xc62164], 2
jb 0x51446a
mov eax, dword [esi + 0x70]
add eax, 0xffffff80
imul eax, dword [0xc62150]
mov eax, eax
test eax, eax
jns 0x5143e8
add eax, 0x7f
sar eax, 7
mov ecx, dword [0xc65024]
xor edx, edx
add eax, 0x80
mov ebx, 0x100
mov edi, ebx
cmovns edx, eax
cmp edx, 0x100
cmovg edx, ebx
sub edi, edx
test cl, 1
cmove edi, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x30]
shr edx, 7
test ecx, 0x200
je 0x514453
mov eax, edx
shl eax, 7
sar eax, 8
cmp edi, 0x80
jge 0x514444
imul edi, edx
mov ebx, eax
sar edi, 8
mov dword [esi + 0x68], edi
jmp 0x514479
sub ebx, edi
mov edi, eax
imul ebx, edx
mov dword [esi + 0x68], edi
sar ebx, 8
jmp 0x514479
mov eax, edi
sub ebx, edi
imul eax, edx
imul ebx, edx
sar eax, 8
mov dword [esi + 0x68], eax
mov edi, eax
sar ebx, 8
jmp 0x514479
mov ebx, edx
imul ebx, dword [esp + 0x30]
shr ebx, 8
mov dword [esi + 0x68], ebx
mov edi, ebx
mov dword [esi + 0x64], ebx
cmp ebx, 0xffff
jle 0x514490
mov dword [esi + 0x64], 0xffff
mov ebx, 0xffff
cmp edi, 0xffff
jle 0x5144a4
mov dword [esi + 0x68], 0xffff
mov edi, 0xffff
test byte [0xc65024], 8
mov ecx, dword [esi + 0x24]
jne 0x5144e2
mov edx, dword [esi + 0xc]
and ecx, 0xffffcfff
mov dword [esi + 0x24], ecx
mov eax, ecx
cmp edx, 0x10000
je 0x5144e2
test dword [0xc65024], 0x410
mov dword [esp + 0x20], ecx
jne 0x5144ef
mov dword [esp + 0x20], ecx
cmp edx, 0xff00
jl 0x5144ef
or ecx, 0x1000
mov dword [esp + 0x20], ecx
mov dword [esi + 0x24], ecx
sar edi, 4
sar ebx, 4
mov edx, edi
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], edi
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov dword [esp + 0x2c], edx
test ecx, 0x800
je 0x51452d
cmp dword [0xc62164], 2
mov dword [esp + 0x2c], edx
ja 0x51452d
neg edx
mov dword [esp + 0x2c], edx
mov dword [esi + 0x68], edx
test cl, cl
jns 0x514539
mov eax, dword [esi + 0xc]
neg eax
mov dword [esi + 0xc], eax
test ecx, 0x8000
je 0x514640
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x10], ebx
jne 0x514555
cmp eax, edx
je 0x514640
mov ebp, dword [esi + 0x10]
mov edi, dword [0xc6216c]
mov dword [esp + 0x14], ebx
sub dword [esp + 0x14], ebp
shl dword [esp + 0x14], 0xc
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
sub dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 0xc
test dword [0xc65024], 0x10000
mov dword [esp + 0x28], edi
jne 0x5145a7
test byte [0xc65020], 9
je 0x5145d9
test byte [0xc65024], 0x10
je 0x5145d9
cmp dword [0xc6502c], 0x14
ja 0x5145d9
or eax, dword [esi + 0x10]
je 0x5145d9
mov eax, ebx
or eax, edx
je 0x5145d9
test ecx, 0x1000000
jne 0x5145d9
mov ecx, dword [ebp + 0xe91c]
mov eax, 0x800
cmp ecx, 0x800
cmovg ecx, eax
cmp ecx, edi
cmovl ecx, edi
mov edi, ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x14]
cdq
idiv edi
mov ecx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x1c]
cdq
idiv ecx
imul ecx, edi
mov edx, ebx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], edi
sar ecx, 0xc
sub edx, ecx
mov ecx, dword [esp + 0x28]
imul ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
sar ecx, 0xc
sub dword [esp + 0x2c], ecx
or eax, edi
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x14], ecx
je 0x514632
mov eax, dword [esp + 0x28]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x1c]
jmp 0x514653
mov eax, dword [esp + 0x20]
and eax, 0xffff7fff
mov dword [esi + 0x24], eax
jmp 0x514649
and ecx, 0xffff7fff
mov dword [esi + 0x24], ecx
mov ecx, edx
mov dword [esi + 0x14], edx
mov eax, ebx
mov dword [esi + 0x10], ebx
shl eax, 0xc
shl ecx, 0xc
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0xe914]
mov dword [ebp + eax*4 + 0x8000], ecx
inc dword [ebp + 0xe914]
cmp dword [ebp + 0xe914], 0x80
jae 0x5146e7
mov eax, ecx
mov ebx, 0x100
jmp 0x5146d1
cmp dword [esi + 0xa4], 0xff
mov dword [esi], 0
jbe 0x5146a7
mov dword [esi + 0xa4], 0
mov eax, dword [esp + 0x18]
mov ebx, 0x100
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x20], 0
jmp 0x5146d1
mov dword [esi + 0xa4], 0
inc eax
add esi, 0x100
mov dword [esp + 0x18], eax
cmp eax, 0x80
jb 0x513550
mov eax, dword [ebp + 0xe914]
cmp eax, dword [0xc62154]
jb 0x51478e
test dword [0xc65024], 0x10000
jne 0x51478e
test eax, eax
je 0x51478e
mov ecx, 1
lea edx, [ebp + 0x8004]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov ebx, ecx
mov esi, eax
mov dword [esp + 0x28], ebx
cmp ecx, eax
jae 0x51477c
mov edi, ecx
mov ebp, dword [edx - 4]
mov esi, eax
mov ebx, dword [esp + 0x24]
mov eax, ebp
mov ecx, dword [edx]
shl eax, 8
shl ecx, 8
mov eax, dword [eax + ebx + 0x6c]
cmp eax, dword [ecx + ebx + 0x6c]
mov ebx, dword [edx]
jge 0x51476c
mov dword [edx], ebp
inc edi
mov ebp, dword [esp + 0x24]
mov dword [edx - 4], ebx
add edx, 4
mov esi, dword [ebp + 0xe914]
mov eax, esi
cmp edi, esi
jb 0x514732
jmp 0x514770
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
add edx, 4
inc ecx
mov dword [esp + 0x30], edx
mov eax, esi
mov dword [esp + 0x2c], ecx
cmp ebx, esi
jb 0x514724
mov ecx, dword [ebp + 0xe90c]
pop edi
pop esi
pop ebx
test ecx, 0x400
je 0x5147e2
mov eax, dword [ebp + 0xe984]
test eax, eax
jne 0x5147bc
or ecx, 0x200
mov dword [ebp + 0xe90c], ecx
xor eax, eax
pop ebp
add esp, 0x24
ret
mov ecx, dword [ebp + 0xe91c]
cmp eax, ecx
jbe 0x5147d8
sub eax, ecx
mov dword [ebp + 0xe984], eax
mov eax, 1
pop ebp
add esp, 0x24
ret
mov dword [ebp + 0xe984], 0
mov eax, 1
pop ebp
add esp, 0x24
ret