Function at 0x531980
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
push ebx
push esi
mov esi, dword [ebp + 8]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x18], edx
xorps xmm0, xmm0
mov dword [ebp - 8], ebx
push edi
mov eax, dword [esi]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x58], edx
movq qword [ebp - 0x70], xmm0
mov dword [ebp - 0x44], eax
cmp dword [esi + 0x40], edx
jne 0x53368f
cmp byte [eax + 0x1e], dl
jne 0x53368f
mov eax, dword [ebp + 0xc]
push eax
push esi
mov dword [ebp - 0x68], eax
call fcn.00530600
mov ebx, eax
add esp, 8
mov dword [ebp - 4], ebx
test ebx, ebx
je 0x531db1
push dword [ebx + 0x44]
push dword [esi]
call fcn.0052dfd0
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x60]
push eax
push edi
push 0x6b
push ebx
push esi
call fcn.00531600
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x1c]
push ebx
push esi
mov dword [ebp - 0x48], eax
call fcn.0053fbf0
add esp, 0x24
test eax, eax
jne 0x531db1
push dword [ebp - 0x60]
push ebx
push esi
call fcn.00525f50
add esp, 0xc
test eax, eax
jne 0x531db1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x44]
shl eax, 2
push eax
push ecx
call fcn.00518390
mov edx, eax
add esp, 8
mov dword [ebp - 8], edx
test edx, edx
je 0x531db1
xor eax, eax
cmp dword [ebx + 8], eax
jle 0x531a6d
nop word [eax + eax]
mov dword [edx + eax*4], 0xffffffff
inc eax
cmp eax, dword [ebx + 8]
jl 0x531a60
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x14], eax
mov dword [ecx + 0x28], eax
inc dword [esi + 0x44]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0x44]
test eax, eax
je 0x531a91
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x531a86
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x90], eax
xor eax, eax
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], eax
cmp dword [edi], eax
jle 0x531c58
xor ebx, ebx
mov dword [ebp - 0x34], ebx
nop dword [eax]
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 0xc]
push dword [ebx + eax]
lea eax, [ebp - 0x94]
push eax
call fcn.0052cda0
add esp, 8
test eax, eax
jne 0x531ec2
mov ecx, dword [ebp - 4]
xor edi, edi
cmp edi, dword [ecx + 8]
jge 0x531b91
mov eax, dword [esi + 0xc]
add eax, ebx
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x50], eax
nop dword [eax]
mov edx, dword [ebx]
mov esi, dword [eax + 4]
mov al, byte [edx]
test al, al
je 0x531b3d
nop dword [eax + eax]
movzx ecx, byte [esi]
movzx eax, al
mov al, byte [eax + 0x5f0120]
cmp al, byte [ecx + 0x5f0120]
jne 0x531b3d
mov al, byte [edx + 1]
inc edx
inc esi
test al, al
jne 0x531b20
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5f0120]
movzx eax, byte [esi]
movzx eax, byte [eax + 0x5f0120]
sub ecx, eax
mov eax, dword [ebp - 4]
je 0x531b66
inc edi
add ebx, 0x18
cmp edi, dword [eax + 8]
mov eax, dword [ebp - 0x50]
jl 0x531b10
jmp 0x531b83
cmp edi, dword [eax + 4]
jne 0x531b7a
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x38], 1
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 4]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x34]
cmp edi, dword [ecx + 8]
jl 0x531bb5
mov esi, dword [esi + 0xc]
push dword [esi + ebx + 4]
call fcn.00525fe0
add esp, 4
test eax, eax
je 0x531d6d
mov eax, dword [esi + ebx]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
add ecx, ecx
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*8]
lea ecx, [edi + edi*2]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + ecx*8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp byte [eax + 0x7c], 0
jne 0x531c34
cmp byte [ecx + 0x20c], 0
jne 0x531c34
mov ecx, dword [eax + 0x10c]
test ecx, ecx
je 0x531c34
mov ebx, dword [ebp + 8]
push dword [ebx + 0x200]
push edx
mov edx, dword [ebp - 4]
push esi
push dword [edx]
push 0x17
push dword [eax + 0x110]
call ecx
mov ebx, dword [ebp - 0x34]
add esp, 0x18
cmp eax, 1
je 0x531db8
test eax, eax
je 0x531c23
cmp eax, 2
jne 0x531d99
mov edx, dword [ebp - 8]
cmp eax, 2
jne 0x531c37
mov dword [edx + edi*4], 0xffffffff
jmp 0x531c37
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
add ebx, 0x14
mov edi, dword [ebp + 0x10]
inc esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x34], ebx
cmp esi, dword [edi]
jl 0x531ad0
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x38]
push eax
push edx
push ebx
push esi
call fcn.0051e370
mov edx, eax
add esp, 0x10
mov eax, dword [ebx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x30], edx
test eax, eax
je 0x531ca1
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x531c72
test ecx, ecx
jle 0x531ca1
lea eax, [ecx*4]
push eax
push dword [ebp - 0x44]
call fcn.00518390
mov edx, eax
add esp, 8
mov dword [ebp - 0x18], edx
test edx, edx
je 0x531ec5
mov edx, dword [ebp - 0x30]
mov edi, dword [ebx + 0x10]
test edi, edi
je 0x531d01
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
nop
test edx, edx
jne 0x531de8
cmp dword [ebp - 0x38], edx
jne 0x531de8
mov esi, dword [edi + 4]
xor ebx, ebx
test esi, esi
jle 0x531cec
mov ecx, dword [edi + 8]
nop dword [eax]
mov esi, dword [ebp - 8]
mov eax, dword [ecx]
cmp dword [esi + eax*4], ebx
mov esi, dword [edi + 4]
jge 0x531dd7
inc edx
add ecx, 4
cmp edx, esi
jl 0x531cd0
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x30]
mov dword [eax], ebx
add eax, 4
mov edi, dword [edi + 0x20]
mov dword [ebp - 0x3c], eax
test edi, edi
jne 0x531cb0
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x531e52
mov esi, dword [esi]
push 0xc8
push esi
call fcn.00518390
mov edi, eax
mov dword [ebp - 0x34], eax
add esp, 8
test edi, edi
je 0x531df3
push 0xc8
push 0
push edi
call fcn.005b9c20
mov dword [edi], esi
add esp, 0xc
mov eax, dword [esi + 0x88]
test eax, eax
je 0x531d4b
mov dword [eax + 0x3c], edi
mov eax, dword [esi + 0x88]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], 0
mov dword [esi + 0x88], edi
mov dword [edi + 0x34], 0x26bceaa5
jmp 0x531df8
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
push dword [eax + ecx*4 + 4]
push str.no_such_column:__s
push ebx
call fcn.005199a0
add esp, 0xc
mov byte [ebx + 0x11], 1
xor edx, edx
jmp 0x531ec8
mov ebx, dword [ebp + 8]
push str.authorizer_malfunction
push ebx
call fcn.005199a0
add esp, 8
mov dword [ebx + 4], 1
xor edx, edx
jmp 0x531ec5
mov ebx, dword [ebp + 8]
push str.not_authorized
push ebx
call fcn.005199a0
add esp, 8
mov dword [ebx + 4], 0x17
xor edx, edx
jmp 0x531ec5
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x3c]
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x531cef
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x531cf2
xor edi, edi
mov dword [ebp - 0x34], edi
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edi
test edi, edi
je 0x531ec2
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x531e1b
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x531e4f
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0x94
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebp + 8]
cmp byte [esi + 0x12], 0
jne 0x531e5c
mov byte [edi + 0x62], 1
mov eax, dword [esi + 0x1ac]
test eax, eax
push dword [ebp - 0x20]
mov ebx, dword [ebp + 8]
cmovne esi, eax
push ebx
call fcn.00516ab0
mov eax, dword [esi + 0x154]
add esp, 8
mov ecx, dword [ebp - 0x20]
bts eax, ecx
or byte [esi + 0x15c], 1
mov dword [esi + 0x154], eax
mov esi, dword [ebp - 4]
test byte [esi + 0x22], 0x10
je 0x531f0f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp - 8]
push dword [ebp - 0x5c]
push dword [ebp + 0x10]
push esi
push dword [ebp + 0xc]
push ebx
call fcn.00544ec0
add esp, 0x20
mov dword [ebp + 0x14], 0
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x531edb
mov eax, dword [ebp - 0x70]
mov dword [ecx + 0x200], eax
mov edi, dword [ebp - 0x44]
push edx
push edi
call fcn.00518300
push ebx
push edi
call fcn.00518300
push dword [ebp - 0x68]
push edi
call fcn.005301b0
push esi
push edi
call fcn.0051c4f0
push dword [ebp + 0x14]
push edi
call fcn.0051bc00
add esp, 0x28
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ebx, dword [edx + 0x48]
inc ebx
cmp dword [ebp - 0x40], 0
mov dword [ebp - 0x2c], ebx
lea ecx, [ebx + 1]
mov dword [ebp - 0x28], ecx
mov dword [edx + 0x48], ecx
mov dword [ebp - 0x24], ecx
jne 0x531f31
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x531f42
lea eax, [ecx + 1]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 8]
add eax, ecx
mov dword [edx + 0x48], eax
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 0
jne 0x531f52
cmp dword [ebp - 0x40], 0
jne 0x531f52
test eax, eax
je 0x531f5b
inc dword [edx + 0x48]
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x28], eax
mov ecx, dword [edx + 0x48]
lea eax, [ecx + 1]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 8]
add eax, ecx
mov ecx, dword [ebp - 0x48]
mov dword [edx + 0x48], eax
test ecx, ecx
je 0x531f97
push dword [ebp - 0x14]
mov eax, dword [edx + 0x200]
push dword [ebp + 0x14]
mov dword [ebp - 0x70], eax
mov eax, dword [esi]
push esi
push edx
mov dword [ebp - 0x6c], edx
mov dword [edx + 0x200], eax
call fcn.00526980
add esp, 0x10
push dword [ebp + 0x14]
lea eax, [ebp - 0x94]
push eax
call fcn.0052cda0
add esp, 8
test eax, eax
jne 0x531ec2
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x531fc6
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x531ff5
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 4
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005417b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x531ec2
movzx eax, byte [ebx + 6]
mov esi, dword [edi + 0x1c]
mov dword [ebp - 0x50], eax
cmp dword [edi + 0x20], esi
jg 0x532032
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x532064
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x41
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [ebp - 0x50], 0
jne 0x5320b1
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x53207f
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x5320b1
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x70
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebx
call fcn.005422c0
mov eax, dword [ebp - 0x44]
add esp, 4
mov esi, dword [ebp + 8]
test dword [eax + 0xc], 0x1000
je 0x532123
cmp dword [esi + 0x1b0], 0
jne 0x532123
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
mov esi, dword [edi + 0x1c]
mov dword [ebp - 0x64], ebx
cmp dword [edi + 0x20], esi
jg 0x5320f0
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x532120
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x48], 0
jne 0x5322dc
cmp dword [ebp - 0x50], 0
mov ebx, dword [ebp - 4]
jne 0x532148
push 0x28
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x14]
push esi
call fcn.00527340
add esp, 0x14
cmp dword [ebp + 0x18], 5
je 0x53216f
mov eax, dword [ebx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x54], ecx
test eax, eax
je 0x532177
nop word [eax + eax]
cmp byte [eax + 0x18], 5
je 0x53216f
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x532160
jmp 0x532177
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov ebx, dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], ebx
test ebx, ebx
je 0x5322dc
nop word [eax + eax]
test ecx, ecx
jne 0x5321a1
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + eax*4], 0
jle 0x5322c4
push ebx
push esi
call fcn.00524370
mov esi, dword [edi + 0x1c]
add esp, 8
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xc], eax
cmp ecx, esi
jg 0x532224
test ecx, ecx
je 0x5321c6
add ecx, ecx
jmp 0x5321cb
mov ecx, 0x33
lea eax, [ecx + ecx*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x5322a0
mov ecx, dword [edi]
test ecx, ecx
je 0x532208
cmp ebx, dword [ecx + 0x104]
jb 0x532208
cmp ebx, dword [ecx + 0x108]
jae 0x532208
movzx ecx, word [ecx + 0xe8]
jmp 0x532214
push ebx
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], ebx
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0x28
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ecx + 0x10], 0
add eax, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0xc], eax
mov edx, dword [edi + 4]
mov ecx, dword [edi]
test edx, edx
je 0x5322b0
cmp byte [ecx + 0x1e], 0
jne 0x5322b0
test esi, esi
jns 0x53226f
mov esi, dword [edi + 0x1c]
dec esi
lea eax, [esi + esi*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx eax, byte [esi + 1]
push eax
push ecx
call fcn.004f2650
mov eax, dword [ebp - 0x4c]
add esp, 0xc
mov ebx, dword [ebp - 0x3c]
mov dword [esi + 0x10], 0
test eax, eax
jne 0x5322a7
mov dword [esi + 0x10], eax
mov byte [esi + 1], al
jmp 0x5322c1
mov esi, 1
jmp 0x532258
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x5322c1
push dword [ebp - 0x4c]
push 0xfffffffffffffff0
push ecx
call fcn.004f2650
mov ebx, dword [ebp - 0x3c]
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebx + 0x20]
inc eax
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], eax
test ebx, ebx
jne 0x532190
cmp dword [ebp - 0x50], 0
mov esi, dword [edi + 0x1c]
je 0x5323a1
cmp dword [edi + 0x20], esi
jg 0x532302
push edi
call fcn.004feff0
add esp, 4
test eax, eax
je 0x532302
mov esi, 1
jmp 0x532335
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 0x1c]
mov dword [ebp - 0x10], ebx
cmp dword [edi + 0x20], ebx
jg 0x532356
push edi
call fcn.004feff0
add esp, 4
test eax, eax
je 0x532356
mov dword [ebp - 0x10], 1
jmp 0x53238a
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
js 0x5323f1
mov edx, dword [edi + 0x1c]
cmp edx, esi
jbe 0x5323f1
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0x5323f1
mov dword [ebp - 0x10], esi
cmp dword [edi + 0x20], esi
jg 0x5323bf
push edi
call fcn.004feff0
add esp, 4
test eax, eax
je 0x5323bf
mov dword [ebp - 0x10], 1
jmp 0x5323f1
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x71
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x53245d
test eax, eax
je 0x532403
add eax, eax
jmp 0x532408
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x53248e
mov ecx, dword [edi]
test ecx, ecx
je 0x532441
cmp esi, dword [ecx + 0x104]
jb 0x532441
cmp esi, dword [ecx + 0x108]
jae 0x532441
movzx ecx, word [ecx + 0xe8]
jmp 0x53244d
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x36
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [ebp - 0x38], 0
je 0x532586
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x5324f9
cmp byte [eax], 0x84
jne 0x5324f9
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
mov ebx, dword [esi + 0x1c]
cmp dword [esi + 0x20], ebx
jg 0x5324c5
push esi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x53253e
mov eax, dword [esi + 4]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0x1c]
mov word [eax + ecx*4], 0xe
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x28]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x532541
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp + 8]
push esi
push eax
push ebx
call fcn.0051ac90
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x53253e
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x53253e
mov ebx, dword [esi + 0x1c]
cmp dword [esi + 0x20], ebx
jg 0x53252d
push esi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x53253e
mov eax, dword [esi + 4]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0x1c]
mov word [eax + ecx*4], 0xf
jmp 0x5324d4
mov ebx, dword [ebp - 0x28]
mov esi, dword [edi + 0x1c]
cmp dword [edi + 0x20], esi
jg 0x532556
push edi
call fcn.004feff0
add esp, 4
test eax, eax
jne 0x532586
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [ebp - 0x30], 0
jne 0x53259a
cmp dword [ebp - 0x40], 0
je 0x532787
xor ebx, ebx
jmp 0x5325aa
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.0051e1c0
add esp, 8
mov ebx, eax
push dword [ebp + 0x18]
push dword [ebp - 4]
push 3
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.00531290
mov edx, dword [ebp - 4]
or ebx, eax
xor esi, esi
mov dword [ebp - 0x2c], ebx
add esp, 0x1c
cmp dword [edx + 8], esi
jle 0x5326df
nop dword [eax + eax]
mov eax, dword [ebp - 8]
cmp dword [eax + esi*4], 0
jl 0x5326bb
cmp ebx, 0xffffffff
je 0x5326bb
cmp esi, 0x20
jge 0x53260c
mov eax, 1
mov ecx, esi
shl eax, cl
test ebx, eax
jne 0x5326bb
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x532685
test eax, eax
je 0x532621
add eax, eax
jmp 0x532626
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x5326cf
mov ecx, dword [edi]
test ecx, ecx
je 0x532663
cmp ebx, dword [ecx + 0x104]
jb 0x532663
cmp ebx, dword [ecx + 0x108]
jae 0x532663
movzx ecx, word [ecx + 0xe8]
jmp 0x53266f
push ebx
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], ebx
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 4
mov dword [edi + 0x20], edx
mov edx, dword [ebp - 4]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x58]
add eax, esi
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x5326d2
mov eax, dword [ebp - 0x58]
add eax, esi
push eax
push esi
push dword [ebp - 0x14]
push edx
push edi
call fcn.0051a750
add esp, 0x14
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x2c]
inc esi
cmp esi, dword [edx + 8]
jl 0x5325e0
cmp dword [ebp - 0x38], 0
jne 0x532787
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x532755
test eax, eax
je 0x5326fb
add eax, eax
jmp 0x532700
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532787
mov ecx, dword [edi]
test ecx, ecx
je 0x532739
cmp esi, dword [ecx + 0x104]
jb 0x532739
cmp esi, dword [ecx + 0x108]
jae 0x532739
movzx ecx, word [ecx + 0xe8]
jmp 0x532745
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x28]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp + 0x18]
mov ebx, dword [ebp - 4]
push ebx
push 1
push 1
push dword [ebp + 0x10]
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.00531290
mov ecx, dword [edi + 0x20]
add esp, 0x1c
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x1c]
dec eax
add eax, dword [ebx + 8]
mov ebx, dword [edi + 0x1c]
mov dword [ebp - 0xc], eax
cmp ecx, ebx
jg 0x53281c
test ecx, ecx
je 0x5327c2
add ecx, ecx
jmp 0x5327c7
mov ecx, 0x33
lea eax, [ecx + ecx*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532850
mov ecx, dword [edi]
test ecx, ecx
je 0x532800
cmp esi, dword [ecx + 0x104]
jb 0x532800
cmp esi, dword [ecx + 0x108]
jae 0x532800
movzx ecx, word [ecx + 0xe8]
jmp 0x53280c
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x532853
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
xor esi, esi
mov dword [ebp - 0x20], esi
cmp dword [edx + 8], esi
jle 0x532a3d
cmp esi, dword [edx + 4]
je 0x532a30
mov eax, dword [ebp - 8]
mov eax, dword [eax + esi*4]
test eax, eax
js 0x532a6a
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x532958
cmp byte [eax], 0x84
jne 0x532958
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x532920
test eax, eax
je 0x5328b9
add eax, eax
jmp 0x5328be
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [esi + 4]
push dword [esi]
call fcn.00518450
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x532a27
mov ecx, dword [esi]
test ecx, ecx
je 0x5328fb
cmp ebx, dword [ecx + 0x104]
jb 0x5328fb
cmp ebx, dword [ecx + 0x108]
jae 0x5328fb
movzx ecx, word [ecx + 0xe8]
jmp 0x532907
push ebx
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], ebx
mov ebx, dword [ebp - 0x1c]
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [ebp - 4]
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov esi, dword [ebp - 0x20]
mov word [eax + ecx*4], 0xe
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x2c]
mov byte [ecx + 3], 0
mov dword [ecx + 4], eax
lea eax, [ebx + esi]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x532a30
add ebx, esi
push ebx
push eax
push dword [ebp + 8]
mov dword [ebp - 0xc], ebx
call fcn.0051ac90
add esp, 0xc
mov dword [ebp - 0x4c], eax
cmp eax, ebx
je 0x532a2a
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x532a27
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x2c], ecx
cmp eax, ecx
jg 0x5329f8
test eax, eax
je 0x532998
add eax, eax
jmp 0x53299d
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [esi + 4]
push dword [esi]
call fcn.00518450
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x532a27
mov ecx, dword [esi]
test ecx, ecx
je 0x5329d6
cmp ebx, dword [ecx + 0x104]
jb 0x5329d6
cmp ebx, dword [ecx + 0x108]
jae 0x5329d6
movzx ecx, word [ecx + 0xe8]
jmp 0x5329e2
push ebx
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], ebx
mov ebx, dword [ebp - 0xc]
mul ecx
mov ecx, dword [ebp - 0x2c]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [ebp - 0x4c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, dword [edx + 8]
jl 0x532864
test byte [ebp - 0x60], 1
je 0x532da8
mov eax, dword [edx + 8]
mov ebx, dword [edi + 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x532b9c
test eax, eax
je 0x532b42
add eax, eax
jmp 0x532b47
test dword [ebp - 0x60], 1
je 0x532a86
cmp esi, 0x1f
jg 0x532a86
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [ebp - 0x58], eax
je 0x532a30
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x532af5
test eax, eax
je 0x532a98
add eax, eax
jmp 0x532a9d
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532b26
mov ecx, dword [edi]
test ecx, ecx
je 0x532ad6
cmp esi, dword [ecx + 0x104]
jb 0x532ad6
cmp esi, dword [ecx + 0x108]
jae 0x532ad6
movzx ecx, word [ecx + 0xe8]
jmp 0x532ae2
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mov esi, dword [ebp - 0x20]
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov ebx, dword [ebp - 0x1c]
mov word [eax + ecx*4], 0x1d
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov byte [ecx + 3], 0
mov dword [ecx + 4], eax
lea eax, [ebx + esi]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 0
jmp 0x532b2c
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx + esi]
push eax
push esi
push dword [ebp - 4]
push edi
call fcn.00516e50
add esp, 0x10
jmp 0x532a2d
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532bce
mov ecx, dword [edi]
test ecx, ecx
je 0x532b80
cmp esi, dword [ecx + 0x104]
jb 0x532b80
cmp esi, dword [ecx + 0x108]
jae 0x532b80
movzx ecx, word [ecx + 0xe8]
jmp 0x532b8c
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0xc]
mov word [eax + ecx*4], 0x1e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebp - 4]
push ebx
push edi
call fcn.00530f90
mov eax, dword [ebp - 0x40]
add esp, 8
mov esi, eax
test eax, eax
je 0x532c23
mov edi, dword [ebp + 8]
cmp byte [esi + 8], 0x6b
jne 0x532c19
cmp byte [esi + 9], 1
jne 0x532c19
push dword [ebp + 0x10]
push dword [esi + 0x10]
call fcn.004e87f0
add esp, 8
test eax, eax
je 0x532c19
push dword [ebp - 0x10]
push dword [ebp + 0x18]
push dword [ebp - 0x24]
push ebx
push esi
push edi
call fcn.005164a0
add esp, 0x18
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x532be7
mov edi, dword [ebp - 0x34]
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x532c8f
test eax, eax
je 0x532c35
add eax, eax
jmp 0x532c3a
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532cc0
mov ecx, dword [edi]
test ecx, ecx
je 0x532c73
cmp esi, dword [ecx + 0x104]
jb 0x532c73
cmp esi, dword [ecx + 0x108]
jae 0x532c73
movzx ecx, word [ecx + 0xe8]
jmp 0x532c7f
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 0x36
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp - 4]
xor esi, esi
cmp dword [edx + 8], esi
jle 0x532da8
mov eax, dword [ebp - 8]
cmp dword [eax + esi*4], 0
jge 0x532d9e
cmp esi, dword [edx + 4]
je 0x532d9e
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x532d56
test eax, eax
je 0x532cf9
add eax, eax
jmp 0x532cfe
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x532d85
mov ecx, dword [edi]
test ecx, ecx
je 0x532d37
cmp ebx, dword [ecx + 0x104]
jb 0x532d37
cmp ebx, dword [ecx + 0x108]
jae 0x532d37
movzx ecx, word [ecx + 0xe8]
jmp 0x532d43
push ebx
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], ebx
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0x1d
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov dword [ecx + 8], esi
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, esi
push eax
push esi
push dword [ebp - 4]
push edi
call fcn.00516e50
mov edx, dword [ebp - 4]
add esp, 0x10
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [edx + 8]
jl 0x532cd1
cmp dword [ebp - 0x48], 0
jne 0x533091
mov esi, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x38], eax
mov ebx, dword [ebp + 8]
push 0
push dword [ebp - 0x10]
cmovne eax, esi
push dword [ebp + 0x18]
push 1
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x28]
push dword [ebp - 0x14]
push edx
push ebx
call fcn.00521b70
add esp, 0x28
cmp dword [ebp - 0x30], 0
je 0x532df3
push 0
push esi
push dword [ebp - 4]
push ebx
call fcn.0051da90
add esp, 0x10
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x532e66
test eax, eax
je 0x532e05
add eax, eax
jmp 0x532e0a
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532ece
mov eax, dword [edi]
test eax, eax
je 0x532e47
cmp esi, dword [eax + 0x104]
jb 0x532e47
cmp esi, dword [eax + 0x108]
jae 0x532e47
movzx ecx, word [eax + 0xe8]
jmp 0x532e53
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mov esi, dword [ebp - 0x24]
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov word [eax + ecx*4], 0x36
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.00523050
add esp, 0x10
cmp dword [ebp - 0x30], 0
jne 0x532eb9
cmp dword [ebp - 0x38], 0
je 0x532f65
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x532f32
test eax, eax
je 0x532ed5
add eax, eax
jmp 0x532eda
mov ebx, 1
jmp 0x532e95
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x532f65
mov eax, dword [edi]
test eax, eax
je 0x532f13
cmp esi, dword [eax + 0x104]
jb 0x532f13
cmp esi, dword [eax + 0x108]
jae 0x532f13
movzx ecx, word [eax + 0xe8]
jmp 0x532f1f
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov word [eax + ecx*4], 0x3b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test ebx, ebx
js 0x532f7a
mov edx, dword [edi + 0x1c]
cmp edx, ebx
jbe 0x532f7a
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4 + 8], edx
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp + 8]
test esi, esi
je 0x532f95
push dword [ebp - 0x28]
push 0
push dword [ebp - 4]
push ebx
call fcn.0051da90
add esp, 0x10
push 0
push 0
push 1
push dword [ebp - 0x18]
push dword [ebp - 0x28]
push dword [ebp - 0x14]
push dword [ebp - 4]
push ebx
call fcn.00516fb0
add esp, 0x20
test esi, esi
je 0x533091
mov eax, dword [ebx]
test dword [eax + 0xc], 0x4000000
je 0x533091
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov esi, ecx
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x532fee
cmp byte [ecx], 0
je 0x532fe6
nop word [eax + eax]
inc esi
cmp byte [esi], 0
jne 0x532fe0
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [eax + 0x44]
add eax, 0x38
mov dword [ebp - 0x4c], eax
cmp dword [eax + 0xc], 0
je 0x533047
mov eax, ecx
xor ebx, ebx
mov dword [ebp - 0x2c], eax
test esi, esi
je 0x533037
mov edi, esi
nop word [eax + eax]
movzx eax, byte [eax]
lea ecx, [ebx*8]
dec edi
movzx edx, byte [eax + 0x5f0120]
mov eax, dword [ebp - 0x2c]
xor edx, ecx
inc eax
xor ebx, edx
mov dword [ebp - 0x2c], eax
test edi, edi
jg 0x533010
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov eax, ebx
xor edx, edx
mov ebx, dword [ebp - 0x4c]
div dword [ebx]
mov eax, ebx
mov ebx, dword [ebp + 8]
jmp 0x533049
xor edx, edx
push edx
push esi
push ecx
push eax
call fcn.004f0180
add esp, 0x10
test eax, eax
je 0x533091
mov esi, dword [eax + 8]
test esi, esi
je 0x533091
mov edi, dword [ebp - 4]
push dword [ebp + 0x10]
push esi
push edi
push ebx
call fcn.004f07f0
add esp, 0x10
test eax, eax
je 0x533087
push 0
push 2
push dword [ebp - 0x24]
push edi
push eax
push ebx
call fcn.005164a0
add esp, 0x18
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x533063
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x44]
test dword [eax + 0xc], 0x1000
je 0x533150
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b0], 0
jne 0x533150
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x53311d
test eax, eax
je 0x5330c3
add eax, eax
jmp 0x5330c8
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x533150
mov eax, dword [edi]
test eax, eax
je 0x533101
cmp esi, dword [eax + 0x104]
jb 0x533101
cmp esi, dword [eax + 0x108]
jae 0x533101
movzx ecx, word [eax + 0xe8]
jmp 0x53310d
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x64]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp - 0x10]
push dword [ebp + 0x18]
push dword [ebp - 0x24]
push dword [ebp - 4]
push 2
push dword [ebp + 0x10]
push 0x6b
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.00516440
mov ebx, dword [edi + 0x1c]
add esp, 0x24
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x5331dd
test eax, eax
je 0x533183
add eax, eax
jmp 0x533188
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x533210
mov eax, dword [edi]
test eax, eax
je 0x5331c1
cmp esi, dword [eax + 0x104]
jb 0x5331c1
cmp esi, dword [eax + 0x108]
jae 0x5331c1
movzx ecx, word [eax + 0xe8]
jmp 0x5331cd
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x10]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x10]
test eax, eax
js 0x533228
mov edx, dword [edi + 0x1c]
cmp edx, eax
jbe 0x533228
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov eax, dword [ebp - 4]
xor ebx, ebx
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x48], edx
test edx, edx
je 0x533311
nop dword [eax + eax]
cmp dword [ebp - 0x54], 0
jne 0x533253
mov eax, dword [ebp - 0x18]
cmp dword [eax + ebx*4], 0
jle 0x533302
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x5332c8
test eax, eax
je 0x533268
add eax, eax
jmp 0x53326d
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5332ff
mov eax, dword [edi]
test eax, eax
je 0x5332a6
cmp esi, dword [eax + 0x104]
jb 0x5332a6
cmp esi, dword [eax + 0x108]
jae 0x5332a6
movzx ecx, word [eax + 0xe8]
jmp 0x5332b2
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 4
mov dword [edi + 0x20], edx
mov edx, dword [ebp - 0x48]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x1c]
mov word [eax + ecx*4], 0x2d
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ecx + 8], 0
add eax, ebx
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], eax
mov dword [ecx + 0x10], 0
jmp 0x533302
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 0x20]
inc ebx
mov dword [ebp - 0x48], edx
test edx, edx
jne 0x533240
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x53337d
test eax, eax
je 0x533323
add eax, eax
jmp 0x533328
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5333b0
mov eax, dword [edi]
test eax, eax
je 0x533361
cmp esi, dword [eax + 0x104]
jb 0x533361
cmp esi, dword [eax + 0x108]
jae 0x533361
movzx ecx, word [eax + 0xe8]
jmp 0x53336d
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x14]
mov word [eax + ecx*4], 0x2d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0x12], 0
jne 0x5333ce
cmp dword [eax + 0x1b0], 0
jne 0x5333ce
push eax
call fcn.00511820
mov eax, dword [ebp + 8]
add esp, 4
mov ecx, dword [ebp - 0x44]
test dword [ecx + 0xc], 0x1000
je 0x531ec2
cmp dword [eax + 0x1b0], 0
jne 0x53369d
cmp byte [eax + 0x12], 0
jne 0x531ec2
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
cmp eax, ebx
jg 0x533461
test eax, eax
je 0x533407
add eax, eax
jmp 0x53340c
mov eax, 0x33
lea eax, [eax + eax*4]
shl eax, 2
push eax
push dword [edi + 4]
push dword [edi]
call fcn.00518450
mov esi, eax
add esp, 0xc
test esi, esi
je 0x533494
mov eax, dword [edi]
test eax, eax
je 0x533445
cmp esi, dword [eax + 0x104]
jb 0x533445
cmp esi, dword [eax + 0x108]
jae 0x533445
movzx ecx, word [eax + 0xe8]
jmp 0x533451
push esi
call dword [0x65d108]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [edi + 4], esi
mul ecx
shr edx, 4
mov dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*4]
inc dword [edi + 0x1c]
mov edx, dword [ebp - 0x64]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [edi + 0x30]
mov esi, dword [edi]
lea eax, [eax + eax*4]
push eax
push dword [edi + 0x10]
call fcn.0050a770
push dword [edi + 0x10]
push esi
call fcn.00518300
push 0xc8
mov ebx, 1
push esi
mov word [edi + 0x30], bx
call fcn.00518390
mov esi, eax
add esp, 0x18
test esi, esi
je 0x5334dc
push 0xc8
push 0
push esi
call fcn.005b9c20
add esp, 0xc
mov dword [edi + 0x10], esi
test esi, esi
je 0x533518
mov word [esi + 0x1c], bx
mov eax, dword [edi]
mov dword [esi], eax
mov word [esi + 0x44], bx
mov eax, dword [edi]
mov dword [esi + 0x28], eax
mov word [esi + 0x6c], bx
mov eax, dword [edi]
mov dword [esi + 0x50], eax
mov word [esi + 0x94], bx
mov eax, dword [edi]
mov dword [esi + 0x78], eax
mov word [esi + 0xbc], bx
mov eax, dword [edi]
mov dword [esi + 0xa0], eax
mov eax, dword [edi]
cmp byte [eax + 0x1e], 0
jne 0x531ec2
mov esi, dword [edi + 0x10]
mov eax, dword [esi]
test eax, eax
je 0x533532
mov eax, dword [eax + 0x48]
jmp 0x533537
mov eax, 0x3b9aca00
xor edi, edi
test eax, eax
js 0x53354e
nop dword [eax]
cmp byte [edi + str.rows_updated], 0
je 0x53354e
inc edi
cmp edi, eax
jle 0x533540
movzx eax, word [esi + 0x1c]
test eax, 0x2460
je 0x53365e
test eax, 0x2000
je 0x5335ed
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x5335e2
mov eax, dword [ebx + 0x14]
mov dword [ebp + 8], eax
test eax, eax
je 0x5335e2
push 0x40
lea eax, [ebp - 0xd4]
push 0
push eax
call fcn.005b9c20
mov eax, 1
mov dword [ebp - 0xa4], esi
mov word [ebp - 0xb0], ax
mov eax, dword [esi]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xd4]
push eax
mov dword [ebp - 0xd4], ebx
call dword [ebp + 8]
push dword [esi + 0x24]
push dword [esi]
call fcn.00518300
movups xmm0, xmmword [ebp - 0xcc]
add esp, 0x18
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebp - 0xbc]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [ebp - 0xac]
movq qword [esi + 0x20], xmm0
push esi
call fcn.0053dd30
add esp, 4
jmp 0x53365e
test eax, 0x400
je 0x53360c
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x53360c
push dword [esi + 4]
call ecx
add esp, 4
mov dword [esi + 0x20], 0
jmp 0x53365e
test al, 0x20
je 0x53361d
push dword [esi + 0x10]
call fcn.0052d1e0
add esp, 4
jmp 0x53365e
test al, 0x40
je 0x53365e
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov eax, dword [ecx + 0xac]
mov dword [edx + 0x44], eax
mov dword [ecx + 0xac], edx
test byte [esi + 0x1c], 0x20
je 0x533646
push dword [esi + 0x10]
call fcn.0052d1e0
add esp, 4
mov ax, word [esi + 0x1c]
mov ecx, 0xbf01
and ax, cx
mov byte [esi + 0x1e], 5
or ax, 1
mov word [esi + 0x1c], ax
push dword [esi + 0x24]
push dword [esi]
call fcn.00518300
add esp, 8
mov dword [esi + 0x24], 0
mov dword [esi + 4], str.rows_updated
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], 0x1030a02
jmp 0x531ec2
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
jmp 0x531ecb
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 0x10]
jmp 0x531ecb