Function at 0x504220
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x18], 0
mov eax, edx
mov dword [esp + 0x10], esi
push edi
mov dword [esp + 0x48], eax
cmp dword [esi + 0x40], 0
mov ebx, dword [esi]
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], ebx
jne 0x50515d
cmp byte [ebx + 0x1e], 0
jne 0x50515d
call fcn.00518ce0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
je 0x50515d
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x34], 0xfff0bdc0
test ecx, ecx
je 0x5042c4
mov eax, dword [esi]
mov dword [esp + 0x34], 0
mov edx, dword [eax + 4]
test edx, edx
jle 0x5042c4
mov eax, dword [eax + 8]
add eax, 0xc
cmp dword [eax], ecx
je 0x5042c4
inc dword [esp + 0x34]
add eax, 0x10
cmp dword [esp + 0x34], edx
jl 0x5042b3
mov edx, edi
mov ecx, esi
call fcn.0051c350
test eax, eax
jne 0x50515d
push ecx
mov edx, edi
mov ecx, esi
call fcn.00518c80
add esp, 4
test eax, eax
jne 0x50515d
mov ecx, dword [edi + 0xc]
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0x504301
mov edi, dword [ebp + 0xc]
xor ebx, ebx
xor ecx, ecx
jmp 0x505168
cmp byte [ebx + 0xe2], 0
je 0x50434e
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0x50434e
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x10], edx
test edx, edx
je 0x50434e
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x504346
mov dword [ebx + 0xe8], eax
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0x504373
push ecx
call fcn.00547470
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x504365
mov byte [ebx + 0x1e], 1
mov ecx, edx
mov dword [esp + 0x38], ecx
test edx, edx
je 0x50515d
xor eax, eax
cmp dword [edi + 0xc], eax
jle 0x50438d
nop word [eax + eax]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0xc]
jl 0x504380
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x44]
mov dword [esp + 0x24], eax
mov dword [edx + 0x20], eax
mov ecx, dword [esi + 0x44]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [edi + 0x14]
test eax, eax
je 0x5043bb
nop dword [eax]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x5043b0
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
cmp dword [eax], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], 0
jle 0x50455e
xor ebx, ebx
mov esi, eax
mov dword [esp + 0x40], ebx
nop word [eax + eax]
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x64]
mov edx, dword [edx + ebx]
call fcn.005274f0
test eax, eax
jne 0x50515d
mov eax, dword [esp + 0x18]
xor edi, edi
cmp edi, dword [eax + 0xc]
jge 0x5044f1
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x58], eax
nop dword [eax]
mov esi, dword [eax]
mov edx, ecx
mov bl, byte [esi]
test bl, bl
je 0x504481
mov al, bl
sub esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x569750]
cmp al, byte [ecx + 0x569750]
jne 0x504481
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x504460
movzx eax, bl
movzx ecx, byte [eax + 0x569750]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x569750]
sub ecx, eax
je 0x5044bb
mov ecx, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x58]
add eax, 0x18
mov dword [esp + 0x58], eax
cmp edi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x54]
jl 0x504450
mov ebx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
jmp 0x5044e8
mov ebx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
cmp edi, dword [ebx + 8]
mov ebx, dword [esp + 0x40]
jne 0x5044dd
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], 1
mov eax, dword [ebx + eax]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 0xc]
jl 0x50453a
mov esi, dword [esi + 0xc]
mov edx, str._ROWID_
mov edi, dword [esi + ebx + 4]
mov ecx, edi
call fcn.00544730
test eax, eax
je 0x504528
mov edx, str.ROWID
mov ecx, edi
call fcn.00544730
test eax, eax
je 0x504528
mov edx, 0x56c6f4
mov ecx, edi
call fcn.00544730
test eax, eax
jne 0x504592
mov eax, dword [esi + ebx]
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
add ebx, 0x14
inc eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
cmp eax, dword [esi]
jl 0x504410
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x14]
xor ecx, ecx
test eax, eax
je 0x504612
nop dword [eax + eax]
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x504570
test ecx, ecx
jle 0x504612
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0x5045af
mov edi, dword [ebp + 0xc]
xor ecx, ecx
jmp 0x505164
mov ecx, dword [esp + 0x14]
push edi
push str.no_such_column:__s
push ecx
call fcn.00544890
mov edi, dword [ebp + 0xc]
add esp, 0xc
xor ecx, ecx
jmp 0x505164
cmp byte [ebx + 0xe2], 0
je 0x5045f6
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0x5045f6
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x1c], edx
test edx, edx
je 0x5045f6
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x504614
mov dword [ebx + 0xe8], eax
jmp 0x504614
push ecx
call fcn.00547470
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x504614
mov byte [ebx + 0x1e], 1
jmp 0x50515d
xor edx, edx
mov edi, dword [edi + 0x14]
test edi, edi
je 0x504676
mov ecx, dword [esp + 0x28]
mov eax, edx
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x504631
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x504666
mov esi, dword [edi + 4]
xor ebx, ebx
xor edx, edx
test esi, esi
jle 0x504662
mov ecx, dword [edi + 8]
nop
mov esi, dword [esp + 0x10]
mov eax, dword [ecx]
cmp dword [esi + eax*4], ebx
mov esi, dword [edi + 4]
jge 0x5046f4
inc edx
add ecx, 4
cmp edx, esi
jl 0x504640
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov dword [eax], ebx
add eax, 4
mov edi, dword [edi + 0x20]
mov dword [esp + 0x40], eax
test edi, edi
jne 0x504625
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x14]
test esi, esi
jne 0x504695
mov ecx, dword [ebx]
call fcn.005340c0
mov esi, eax
mov dword [ebx + 0xc], esi
test esi, esi
je 0x50515d
cmp byte [ebx + 0x13], 0
jne 0x50469f
mov byte [esi + 0x6d], 1
mov edi, dword [esp + 0x34]
mov ecx, ebx
mov edx, edi
call fcn.00519b70
mov eax, dword [ebx + 0x150]
mov edx, dword [esp + 0x18]
bts eax, edi
or byte [ebx + 0x158], 1
mov dword [ebx + 0x150], eax
test byte [edx + 0x22], 0x10
je 0x50470b
push dword [ebp + 0xc]
mov ecx, ebx
push dword [esp + 0x14]
push dword [esp + 0x54]
push dword [ebp + 8]
push edx
mov edx, dword [esp + 0x5c]
call fcn.00503c60
add esp, 0x14
xor edi, edi
mov dword [esp + 0x48], edi
jmp 0x505160
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x504666
mov ecx, dword [ebx + 0x48]
inc ecx
cmp dword [esp + 0x28], 0
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov dword [esp + 0x30], ecx
je 0x504729
inc ecx
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov edi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0xc]
mov edx, edi
inc eax
add eax, ecx
lea ecx, [esp + 0x64]
mov dword [ebx + 0x48], eax
call fcn.005274f0
test eax, eax
jne 0x505160
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504762
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x50479a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
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], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [ebp + 0xc]
mov ecx, ebx
mov edx, dword [esp + 0x48]
push 4
push 0
push edi
call fcn.004fd320
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x505160
mov al, byte [ebx + 6]
mov edi, dword [esi + 0xc]
mov byte [esp + 0xf], al
cmp dword [esi + 0x10], edi
jg 0x5047d4
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x50480c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x3c
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 byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
jne 0x50486d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
inc eax
mov dword [ecx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x5c], eax
cmp dword [esi + 0x10], edi
jg 0x504835
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x50486d
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x68
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 byte [esi + 0x6e], 0
mov ecx, ebx
call fcn.004fcd10
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
test byte [eax + 0xc], 0x80
je 0x5048e1
cmp dword [ebx + 0x1a4], 0
jne 0x5048e1
mov eax, dword [ebx + 0x48]
inc eax
mov dword [ebx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x50], eax
cmp dword [esi + 0x10], edi
jg 0x5048a9
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x5048e1
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
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], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
mov edi, dword [esp + 0x18]
jne 0x504901
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 0x27
push edi
push dword [esp + 0x3c]
call fcn.00515790
add esp, 0xc
cmp dword [ebp + 0x10], 5
jne 0x504968
mov ecx, 1
mov dword [esp + 0x20], ecx
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
test edi, edi
je 0x504aac
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
test ecx, ecx
jne 0x50493c
cmp dword [eax], ecx
jle 0x504a8c
mov edx, edi
mov ecx, ebx
call fcn.005198f0
mov ebx, eax
mov eax, dword [edi + 0x14]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x10], edi
jg 0x50499d
mov ecx, esi
call fcn.00533ee0
test eax, eax
je 0x50499d
mov edi, 1
jmp 0x5049d5
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x504910
cmp byte [eax + 0x18], 5
je 0x50498b
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x504975
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
jmp 0x50491f
mov edi, dword [edi + 0x14]
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
jmp 0x50491f
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi]
test edx, edx
je 0x504a1b
cmp byte [ecx + 0x1e], 0
jne 0x504a1b
test edi, edi
jns 0x5049ec
mov edi, dword [esi + 0xc]
dec edi
lea eax, [edi + edi*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00533770
mov ecx, dword [esp + 0x24]
add esp, 4
test ebx, ebx
jne 0x504a12
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x504a88
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfa
jmp 0x504a88
test ebx, ebx
je 0x504a84
test ecx, ecx
je 0x504a61
cmp ebx, dword [ecx + 0xf0]
jb 0x504a61
cmp ebx, dword [ecx + 0xf4]
jae 0x504a61
mov eax, dword [ecx + 0xec]
mov edx, dword [esp + 0x10]
mov dword [ebx], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
jmp 0x504a88
push ebx
call fcn.00547110
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
jmp 0x504a88
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0x20]
add dword [esp + 0x58], 4
inc dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x504930
cmp byte [esp + 0xf], 0
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
je 0x504b7b
cmp eax, edi
jg 0x504ad3
mov ecx, esi
call fcn.00533ee0
test eax, eax
je 0x504ad3
mov edi, 1
jmp 0x504b0b
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
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 byte [esi + 0x6e], 0
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x34], ebx
cmp dword [esi + 0x10], ebx
jg 0x504b2c
mov ecx, esi
call fcn.00533ee0
test eax, eax
je 0x504b2c
mov dword [esp + 0x34], 1
jmp 0x504b64
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
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
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x34]
cmp edx, edi
jle 0x504bd3
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0x504bd3
mov ebx, edi
mov dword [esp + 0x34], ebx
cmp eax, ebx
jg 0x504b9b
mov ecx, esi
call fcn.00533ee0
test eax, eax
je 0x504b9b
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0x504bd3
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x69
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 byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504be6
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504c1a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp dword [esp + 0x28], 0
je 0x504ca1
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x4c]
push edi
call fcn.00521d50
add esp, 4
cmp eax, edi
je 0x504c56
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x504c56
push edi
push eax
mov edx, 0xf
call fcn.00533d20
add esp, 8
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504c69
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504ca1
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x15
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 byte [esi + 0x6e], 0
mov eax, dword [esp + 0x18]
xor edi, edi
cmp dword [eax + 0xc], edi
jle 0x504dca
cmp edi, dword [eax + 8]
jne 0x504d09
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0x504ccc
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504db8
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x3c]
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], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
jmp 0x504db8
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edi*4]
test eax, eax
jns 0x504d7d
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0x504d27
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504d6a
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 0xc], edx
push edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
push edi
mov byte [esi + 0x6e], 0
call fcn.00505250
jmp 0x504db5
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
mov edx, dword [esp + 0x1c]
push edi
call fcn.00505250
jmp 0x504db5
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
push ebx
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
call fcn.00521d50
add esp, 4
cmp eax, ebx
je 0x504db8
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x504db8
push ebx
push eax
mov edx, 0xf
call fcn.00533d20
add esp, 8
mov eax, dword [esp + 0x18]
inc edi
inc dword [esp + 0x3c]
cmp edi, dword [eax + 0xc]
jl 0x504cb0
mov ebx, dword [esp + 0x34]
xor eax, eax
cmp dword [esp + 0x28], eax
mov edx, dword [esp + 0x18]
cmovne eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
push 0
push ebx
push dword [ebp + 0x10]
push 1
push eax
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x40]
call fcn.005134f0
mov edi, dword [esi + 0xc]
add esp, 0x20
cmp dword [esi + 0x10], edi
jg 0x504e18
mov ecx, esi
call fcn.00533ee0
test eax, eax
je 0x504e18
mov edi, 1
jmp 0x504e50
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
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 byte [esi + 0x6e], 0
push dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
call fcn.005185a0
add esp, 8
cmp dword [esp + 0x28], 0
je 0x504ec2
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
cmp dword [esi + 0x10], ecx
jg 0x504e8a
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504ec2
mov ecx, dword [esp + 0x60]
mov eax, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x38
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 byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, edi
jle 0x504ed3
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x18]
push 0
push 0
push 1
push dword [esp + 0x28]
push dword [esp + 0x50]
push dword [esp + 0x38]
call fcn.00513280
mov eax, dword [esp + 0x5c]
add esp, 0x18
test byte [eax + 0xc], 0x80
je 0x504f55
cmp dword [edi + 0x1a4], 0
jne 0x504f55
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504f1d
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504f55
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
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
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504f68
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x504f9c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
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], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, ebx
jle 0x504fad
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4 + 8], edx
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0x505043
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
test ecx, ecx
jne 0x504fd9
cmp dword [edx], ecx
jle 0x505030
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x504ff0
mov ecx, esi
call fcn.00533ee0
mov edx, dword [esp + 0x5c]
test eax, eax
jne 0x505028
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 0x20]
add edx, 4
inc eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x504fd1
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x505056
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x50508e
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x2a
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 byte [esi + 0x6e], 0
mov eax, dword [esp + 0x44]
test byte [eax + 0xc], 0x80
je 0x50515d
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1a4], 0
jne 0x50515d
cmp byte [eax + 0x13], 0
jne 0x50515d
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x5050ca
mov ecx, esi
call fcn.00533ee0
test eax, eax
jne 0x505102
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
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
mov byte [esi + 0x6e], 0
mov edx, 1
mov ecx, esi
call fcn.00532950
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x50515d
mov edi, dword [esi + 0x28]
xor esi, esi
mov eax, dword [edi + 0x10]
test eax, eax
je 0x50512b
mov eax, dword [eax + 0x48]
test eax, eax
js 0x50513e
jmp 0x505130
mov eax, 0x3b9aca00
cmp byte [esi + str.rows_updated], 0
je 0x50513e
inc esi
cmp esi, eax
jle 0x505130
mov ecx, edi
call fcn.00535300
mov dword [edi + 0x14], str.rows_updated
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], 0x1030a02
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x50519a
test ecx, ecx
je 0x50519a
cmp ecx, dword [esi + 0xf0]
jb 0x50519a
cmp ecx, dword [esi + 0xf4]
jae 0x50519a
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x5051a7
push ecx
call fcn.00547110
add esp, 4
test esi, esi
je 0x5051d1
test ebx, ebx
je 0x5051d1
cmp ebx, dword [esi + 0xf0]
jb 0x5051d1
cmp ebx, dword [esi + 0xf4]
jae 0x5051d1
mov eax, dword [esi + 0xec]
mov dword [ebx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ebx
jmp 0x5051da
push ebx
call fcn.00547110
add esp, 4
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.0051a2c0
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00524b90
test edi, edi
je 0x50523b
mov edx, edi
mov ecx, esi
call fcn.00526370
cmp word [edi + 2], 0
jl 0x50523b
test esi, esi
je 0x505232
cmp edi, dword [esi + 0xf0]
jb 0x505232
cmp edi, dword [esi + 0xf4]
jae 0x505232
mov eax, dword [esi + 0xec]
mov dword [edi], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.00547110
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret