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

Disassembly:
sub esp, 0x94
xor eax, eax
push ebx
mov ebx, dword [esp + 0x9c]
cmp dword [ebx + 0x40], eax
mov ecx, dword [ebx]
push ebp
push esi
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
jne 0x584ffc
cmp byte [ecx + 0x1e], al
jne 0x584ffc
mov ecx, dword [esp + 0xac]
cmp dword [ecx + 0xc], eax
je 0x584ffc
push ebx
mov eax, ecx
call fcn.0057e180
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
je 0x584ffc
mov ebp, dword [esp + 0x40]
mov edi, eax
mov esi, dword [edi + 0x40]
mov ecx, ebp
call fcn.00539ae0
mov edx, dword [ebp + 8]
mov dword [esp + 0x48], eax
shl eax, 4
mov eax, dword [eax + edx]
push eax
mov eax, dword [edi]
push 0
push eax
push 0x12
mov eax, ebx
call fcn.00546ad0
add esp, 0x10
test eax, eax
jne 0x584ffc
lea ecx, [esp + 0x1c]
push ecx
push eax
push 0x69
push ebx
mov eax, edi
call fcn.0053a240
xor edx, edx
cmp dword [edi + 0x18], edx
mov esi, eax
setne dl
push edi
push ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x74], edx
call fcn.00583900
add esp, 0x18
test eax, eax
jne 0x584ffc
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
mov eax, ebx
call fcn.00547e00
add esp, 4
test eax, eax
jne 0x584ffc
mov edi, ebx
call fcn.00549210
mov ebp, eax
test ebp, ebp
je 0x584ffc
cmp byte [ebx + 0x13], 0
jne 0x583b88
mov byte [ebp + 0x61], 1
cmp dword [esp + 0xb4], 0
jne 0x583b9a
test esi, esi
jne 0x583b9a
xor eax, eax
jmp 0x583b9f
mov eax, 1
mov edi, dword [esp + 0x48]
push eax
mov eax, ebx
call fcn.0055fbf0
add esp, 4
cmp dword [esp + 0xb8], 0
jne 0x583bde
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
push edi
push ecx
push edx
push ebx
call fcn.0057e5b0
add esp, 0x10
test eax, eax
jne 0x584f5a
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x10]
push edi
mov edx, esi
call fcn.00541b20
xor ebx, ebx
add esp, 4
cmp dword [esp + 0xb4], ebx
mov dword [esp + 0x3c], eax
je 0x583fea
add dword [esi + 0x48], 1
mov eax, dword [esi + 0x48]
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x14], eax
jg 0x583c25
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583c4e
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [esp + 0xa8]
add dword [eax + 0x48], 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov eax, dword [eax + 0x48]
lea edx, [esi + 2]
mov byte [esp + 0x6c], 0xa
mov dword [esp + 0x70], eax
mov byte [esp + 0x6d], bl
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x24], edx
jg 0x583c8b
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583cbb
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x70]
add edx, 0xffffffff
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x583cd8
mov edi, ebp
call fcn.0053f5e0
test eax, eax
je 0x583cd8
mov dword [esp + 0x34], 1
jmp 0x583d01
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x6c]
push ecx
push edx
push eax
call fcn.0057f980
add esp, 0xc
test eax, eax
jne 0x584ffc
mov ecx, dword [esp + 0xa8]
cmp dword [ecx + 0x40], ebx
jne 0x584ffc
mov edx, dword [esp + 0x40]
cmp byte [edx + 0x1e], bl
jne 0x584ffc
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x583d56
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583d87
mov edx, dword [ebp + 0x14]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
xor ebx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x583d89
xor ebx, ebx
mov edx, dword [esp + 0x70]
push edx
push 4
mov eax, ebp
call fcn.0053f710
mov esi, dword [ebp + 0xc]
add esp, 8
cmp dword [ebp + 0x10], esi
jg 0x583dad
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583dd7
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, 2
mov byte [eax], 6
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x583dec
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx*4 + 8], eax
cmp dword [esp + 0x68], ebx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx]
mov dword [esp + 0x2c], edx
jne 0x583e32
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
push eax
push ecx
mov eax, esi
call fcn.00550270
add esp, 8
xor ebx, ebx
test eax, eax
je 0x58409a
mov edx, dword [esi + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x44], eax
mov eax, esi
mov dword [esp + 0x50], 1
mov dword [esp + 0x28], edx
call fcn.00538a40
mov dword [esp + 0x24], eax
mov eax, esi
call fcn.00538a40
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x18], eax
jg 0x583e74
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583e9d
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x29
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov edx, dword [esp + 0x70]
push edx
push 4
mov eax, ebp
call fcn.0053f710
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
push eax
push 0x1a
mov eax, ebp
call fcn.0053f710
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
push ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
push edx
push eax
push 0x1e
mov eax, ebp
call fcn.0053f660
mov esi, dword [ebp + 0xc]
add esp, 0x20
cmp dword [ebp + 0x10], esi
jg 0x583ef2
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583f1f
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov byte [eax], 0x36
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
push 0x37
mov eax, ebp
call fcn.0053f660
mov esi, dword [ebp + 0xc]
add esp, 0x10
cmp dword [ebp + 0x10], esi
jg 0x583f4d
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x583f76
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x30]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x583f8b
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0xa8]
call fcn.00538a60
mov esi, dword [esp + 0x18]
call fcn.00538a60
mov edx, dword [esp + 0x2c]
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
je 0x5840a3
mov esi, dword [eax + 8]
cmp esi, ebx
jle 0x5840a3
mov eax, dword [eax + 0xc]
mov edi, dword [esp + 0x20]
add eax, 0x17
lea ecx, [ecx]
xor ecx, ecx
cmp byte [eax], bl
setne cl
add eax, 0x18
add edi, ecx
sub esi, 1
jne 0x583fd0
mov eax, dword [esp + 0x10]
jmp 0x5840a7
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb0]
cmp eax, ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x28], 0xffffffff
je 0x584049
mov eax, dword [eax]
jmp 0x58404b
xor eax, eax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x2c], eax
jle 0x58409a
mov dword [esp + 0x24], ebx
lea esp, [esp]
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + ecx]
lea esi, [esp + 0x80]
call fcn.00554790
test eax, eax
jne 0x584ffc
mov edx, dword [esp + 0x2c]
add dword [esp + 0x24], 0x14
add edi, 1
cmp edi, edx
jl 0x584060
jmp 0x583fa8
mov edx, dword [esp + 0x2c]
jmp 0x583faa
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xb8]
cmp ecx, ebx
jne 0x5840ef
cmp edx, ebx
je 0x584253
mov eax, dword [eax + 8]
sub eax, edi
cmp edx, eax
je 0x584244
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa8]
push edx
push eax
mov eax, dword [esp + 0xb4]
push ebx
push eax
push str.table__S_has__d_columns_but__d_values_were_supplied
call fcn.005442b0
add esp, 0x14
jmp 0x584ffc
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x584115
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa8]
push esi
push ecx
push str._d_values_for__d_columns
call fcn.005442b0
add esp, 0xc
jmp 0x584ffc
xor eax, eax
cmp esi, ebx
jle 0x58412e
or edx, 0xffffffff
mov edi, edi
mov esi, dword [ecx]
mov dword [esi + eax*8 + 4], edx
add eax, 1
cmp eax, dword [ecx + 4]
jl 0x584120
cmp dword [ecx + 4], ebx
mov dword [esp + 0x18], ebx
jle 0x584253
jmp 0x584140
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x34], eax
jle 0x5841a7
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
lea eax, [ecx + edx*8]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov edx, dword [edi]
mov ecx, dword [esp + 0x30]
call fcn.00532030
test eax, eax
je 0x58418f
add esi, 1
add edi, 0x18
cmp esi, dword [esp + 0x34]
jl 0x584172
jmp 0x5841a7
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov dword [edx + 4], esi
cmp esi, dword [eax + 4]
jne 0x5841a7
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 8]
mov edi, dword [esp + 0x18]
jl 0x5841f4
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov esi, dword [ecx + edi*8]
mov edx, str._ROWID_
mov ecx, esi
call fcn.00532030
test eax, eax
je 0x5841f0
mov edx, str.ROWID
mov ecx, esi
call fcn.00532030
test eax, eax
je 0x5841f0
mov edx, 0x5fc044
mov ecx, esi
call fcn.00532030
test eax, eax
jne 0x58420d
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0xb8]
add edi, 1
cmp edi, dword [edx + 4]
mov dword [esp + 0x18], edi
jl 0x584140
jmp 0x584253
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*8]
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
push eax
push ebx
push ecx
push str.table__S_has_no_column_named__s
call fcn.005442b0
add esp, 0x10
mov byte [edi + 0x12], 1
jmp 0x584ffc
cmp edx, ebx
mov eax, dword [esp + 0x10]
jle 0x584253
mov edx, dword [eax + 4]
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
test dword [eax + 0xc], 0x1000
mov edi, dword [esp + 0xa8]
je 0x5842b5
add dword [edi + 0x48], 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x58], ecx
jg 0x58428c
mov edi, ebp
call fcn.0053f5e0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x5842b5
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x58]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
cmp dword [esp + 0x5c], ebx
jne 0x584313
mov eax, dword [edi + 0x44]
push 0x27
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
push edi
call fcn.00566b50
mov esi, dword [esp + 0x4c]
add esp, 0xc
lea ecx, [eax*4 + 4]
mov dword [esp + 0x30], eax
call fcn.0053c960
cmp eax, ebx
mov dword [esp + 0x64], eax
je 0x584ffc
mov esi, dword [esp + 0x30]
xor ecx, ecx
test esi, esi
jle 0x584311
lea esp, [esp]
add dword [edi + 0x48], 1
mov edx, dword [edi + 0x48]
mov dword [eax + ecx*4], edx
add ecx, 1
cmp ecx, esi
jl 0x584300
xor ebx, ebx
cmp dword [esp + 0x50], ebx
je 0x584337
mov edx, dword [esp + 0x28]
push edx
push 0x41
mov eax, ebp
call fcn.0053f710
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
add esp, 8
mov dword [esp + 0x54], eax
jmp 0x584367
cmp dword [esp + 0xb4], ebx
je 0x584367
mov ecx, dword [esp + 0x70]
push ecx
push 4
mov eax, ebp
call fcn.0053f710
mov edx, dword [esp + 0x1c]
push edx
mov dword [esp + 0x60], eax
push 0x1a
mov eax, ebp
call fcn.0053f710
add esp, 0x10
mov dword [esp + 0x60], eax
add dword [edi + 0x48], 1
mov eax, dword [edi + 0x48]
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov esi, dword [esp + 0x10]
lea ecx, [eax + 1]
lea eax, [eax + edx + 1]
mov dword [edi + 0x48], eax
test byte [esi + 0x1e], 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], ecx
je 0x58439e
add ecx, 1
add eax, 1
mov dword [esp + 0x14], ecx
mov dword [edi + 0x48], eax
add ecx, 1
mov eax, ebp
mov dword [esp + 0x30], ecx
call fcn.0053f780
test byte [esp + 0x1c], 1
mov dword [esp + 0x24], eax
je 0x5846ee
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x20], esi
jg 0x5843dc
lea edx, [eax + esi]
sub ecx, eax
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], ecx
jmp 0x5843eb
mov ecx, dword [edi + 0x48]
lea esi, [ecx + 1]
add eax, ecx
mov dword [esp + 0x20], esi
mov dword [edi + 0x48], eax
cmp dword [esp + 0x38], ebx
jge 0x584441
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x58440f
mov edi, ebp
call fcn.0053f5e0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x5844f7
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x5844f7
cmp dword [esp + 0x50], ebx
mov eax, dword [esp + 0x38]
je 0x584460
mov ecx, dword [esp + 0x28]
push esi
push eax
push ecx
push 0x1c
mov eax, ebp
call fcn.0053f660
add esp, 0x10
jmp 0x584477
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + edx*4]
mov ecx, edi
call fcn.00540960
push esi
push 0x4a
mov eax, ebp
call fcn.0053f710
mov esi, dword [ebp + 0xc]
add esp, 8
cmp dword [ebp + 0x10], esi
mov ecx, eax
mov dword [esp + 0x1c], ecx
jg 0x5844a1
mov edi, ebp
call fcn.0053f5e0
test eax, eax
mov ecx, dword [esp + 0x1c]
jne 0x5844ce
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x5844df
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x20]
push eax
push 0x15
mov eax, ebp
call fcn.0053f710
mov edi, dword [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], ebx
mov dword [esp + 0x18], ebx
jle 0x58462b
mov dword [esp + 0x48], ebx
lea esp, [esp]
mov eax, dword [esp + 0xb8]
cmp eax, ebx
jne 0x584521
mov esi, dword [esp + 0x18]
jmp 0x584549
mov ecx, dword [eax + 4]
xor esi, esi
cmp ecx, ebx
jle 0x584549
mov eax, dword [eax]
add eax, 4
nop
mov edx, dword [esp + 0x18]
cmp dword [eax], edx
je 0x584542
add esi, 1
add eax, 8
cmp esi, ecx
jl 0x584530
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
jne 0x58455a
cmp dword [esp + 0xb0], ebx
je 0x584563
cmp eax, ebx
je 0x58458a
cmp esi, dword [eax + 4]
jl 0x58458a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
lea esi, [eax + ecx + 1]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ecx + 4]
mov ecx, edi
call fcn.00540960
jmp 0x58460e
cmp ecx, ebx
je 0x5845e7
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x1c], eax
jg 0x5845b0
mov edi, ebp
call fcn.0053f5e0
test eax, eax
mov edi, dword [esp + 0xa8]
jne 0x58460e
mov eax, dword [esp + 0x1c]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov byte [eax], 0x1c
mov byte [eax + 3], bl
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x58460e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx + 1]
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0xc]
lea edx, [esi + esi*4]
mov edx, dword [eax + edx*4]
push edx
mov eax, edi
call fcn.005409d0
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x48], 0x18
add eax, 1
cmp eax, dword [ecx + 8]
mov dword [esp + 0x18], eax
jl 0x584510
cmp dword [esp + 0x5c], ebx
jne 0x584693
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
jg 0x58464f
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x58467f
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add ecx, 1
mov byte [eax], 0x1d
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [esp + 0x10]
push ebp
call fcn.00541a50
mov edi, dword [esp + 0xac]
add esp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
sub edx, dword [esi + 8]
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x6c]
push ecx
sub edx, 1
push edx
push esi
push 1
push ebx
push 0x69
push eax
push edi
call fcn.00589f60
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x44]
add eax, 1
push ecx
mov esi, edi
mov dword [esp + 0x44], eax
call fcn.005388d0
mov edx, dword [esp + 0x44]
add esp, 0x28
cmp edx, dword [edi + 0x38]
jle 0x5846ee
mov ecx, dword [esp + 0x20]
mov eax, edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
cmp dword [esp + 0x5c], ebx
jne 0x584cf6
mov edx, dword [esp + 0x10]
test byte [edx + 0x1e], 0x10
je 0x58473e
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584715
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x58473e
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x34]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [esp + 0x38]
cmp eax, ebx
jl 0x5848d2
cmp dword [esp + 0x50], ebx
je 0x5847b6
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push ecx
push eax
push edx
push 0x1c
mov eax, ebp
call fcn.0053f660
add esp, 0x10
mov edx, dword [esp + 0x10]
test byte [edx + 0x1e], 0x10
jne 0x584880
mov edi, dword [esp + 0x14]
push edi
push 0x4a
mov eax, ebp
call fcn.0053f710
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x44]
push eax
push edi
push ecx
push 0x36
mov eax, ebp
call fcn.0053f660
mov eax, dword [ebp + 0xc]
add esp, 0x18
cmp eax, esi
jle 0x5848bf
mov ecx, dword [ebp + 0x14]
lea edx, [esi + esi*4]
mov dword [ecx + edx*4 + 8], eax
jmp 0x5848bf
cmp dword [esp + 0xb4], ebx
je 0x58480a
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5847d2
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584767
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x4c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
add edx, ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x14]
mov byte [eax], 0xf
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x584767
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xa8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4]
call fcn.00540960
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
sub eax, 1
cmp byte [ecx + 0x1e], bl
je 0x58483f
mov eax, 0x5f8af8
jmp 0x584850
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edx*4]
cmp eax, ebx
je 0x584767
cmp byte [eax], 0xa
jne 0x584767
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x1e], 0x10
jne 0x584767
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov byte [eax], 0x36
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
jmp 0x584935
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584893
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x5848bf
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
add esi, 2
mov byte [eax], 0x49
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov edx, dword [esp + 0x14]
push edx
push 0x15
mov eax, ebp
call fcn.0053f710
add esp, 8
jmp 0x58493d
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
je 0x58491a
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5848ef
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x58493d
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov byte [eax], 0xa
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x58493d
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
push 0x36
mov eax, ebp
call fcn.0053f660
add esp, 0x10
mov dword [esp + 0x7c], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [esp + 0xb0]
call fcn.00541b90
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 8
cmp dword [ecx + 8], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], eax
jle 0x584a8c
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], edx
lea esp, [esp]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 4]
jne 0x5849ce
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x5849a0
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584a6a
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0xa
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x14]
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x584a6a
mov edx, dword [esp + 0xb8]
cmp edx, ebx
jne 0x584b08
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x3c]
cmp byte [eax + ecx + 0x17], bl
je 0x584afe
add dword [esp + 0x20], 1
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + ecx + 4]
mov edx, dword [esp + 0xa8]
push esi
push eax
push edx
call fcn.0056f500
mov ecx, eax
add esp, 0xc
cmp ecx, esi
mov dword [esp + 0x1c], ecx
je 0x584a6a
mov eax, dword [esp + 0xa8]
mov edi, dword [eax + 0xc]
cmp edi, ebx
je 0x584a6a
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
jg 0x584a41
call fcn.0053f5e0
test eax, eax
jne 0x584a6a
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
add dword [edi + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 0xf
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
add dword [esp + 0x14], 1
add dword [esp + 0x3c], 0x18
add eax, 1
cmp eax, dword [edx + 8]
mov dword [esp + 0x18], eax
jl 0x584980
mov esi, dword [esp + 0x10]
test byte [esi + 0x1e], 0x10
je 0x584c77
mov eax, dword [esi + 0x30]
cmp eax, ebx
mov dword [esp + 0x4c], eax
je 0x584abf
mov ecx, dword [esp + 0x40]
lea esp, [esp]
cmp dword [eax], ecx
je 0x584abb
mov eax, dword [eax + 0x10]
cmp eax, ebx
jne 0x584ab0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
push esi
call fcn.005420c0
mov ecx, dword [esi + 8]
mov esi, dword [ebp + 0xc]
add ecx, 2
add esp, 4
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x1c], ecx
jg 0x584be2
mov edi, ebp
call fcn.0053f5e0
test eax, eax
je 0x584bde
mov esi, 1
jmp 0x584c0f
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x20]
jmp 0x584b32
mov ecx, dword [edx + 4]
xor esi, esi
cmp ecx, ebx
jle 0x584b3a
mov eax, dword [edx]
mov edi, dword [esp + 0x18]
add eax, 4
lea ebx, [ebx]
cmp dword [eax], edi
je 0x584b2e
add esi, 1
add eax, 8
cmp esi, ecx
jl 0x584b20
mov edi, dword [esp + 0x10]
cmp esi, ebx
jl 0x5849f3
cmp dword [esp + 0x2c], ebx
je 0x5849f3
cmp edx, ebx
je 0x584b51
cmp esi, dword [edx + 4]
jge 0x5849f3
cmp dword [esp + 0x50], ebx
je 0x584b73
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
push edx
push esi
push eax
push 0x1c
mov eax, ebp
call fcn.0053f660
add esp, 0x10
jmp 0x584a6a
cmp dword [esp + 0xb4], ebx
je 0x584bb9
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x1c], eax
jg 0x584b97
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584a6a
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x4c]
add esi, ecx
mov byte [eax], 0xf
mov dword [eax + 4], esi
jmp 0x5849b3
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0xa8]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + eax*4]
call fcn.00540960
jmp 0x584a6a
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x14]
mov edx, 1
add dword [ebp + 0xc], edx
lea eax, [esi + esi*4]
lea eax, [edi + eax*4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x34]
mov byte [eax], 0x85
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov ecx, dword [ebp + 0x14]
cmp ecx, ebx
mov edi, dword [ebp]
mov eax, esi
je 0x584c5b
cmp byte [edi + 0x1e], bl
jne 0x584c5b
cmp esi, ebx
jge 0x584c2a
mov eax, dword [ebp + 0xc]
sub eax, 1
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + 0x10]
call fcn.0053f8d0
mov eax, dword [esp + 0x4c]
cmp eax, ebx
mov dword [esi + 0x10], ebx
jne 0x584c50
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x584c5b
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf6
add dword [eax + 0xc], 1
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + 0x1a8]
cmp eax, ebx
jne 0x584c6e
mov eax, ecx
mov byte [eax + 0x159], 1
jmp 0x584cf6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x1c]
push eax
xor eax, eax
cmp dword [esp + 0x3c], ebx
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x50]
setge al
push ebx
push eax
mov eax, dword [esp + 0xbc]
push ecx
push edi
push edx
push esi
push eax
call fcn.00579ee0
mov ecx, dword [esp + 0xd0]
push edi
push ebx
push esi
push ecx
call fcn.0057e1e0
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp dword [esp + 0x54], ebx
sete dl
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0xe8]
push ebx
push ecx
push edi
push edx
push esi
push eax
call fcn.00550b10
add esp, 0x58
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x584d43
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584d16
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584d43
mov eax, dword [ebp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov ecx, 1
add dword [ebp + 0xc], ecx
mov byte [eax], 0x14
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov ecx, dword [esp + 0x68]
cmp ecx, ebx
je 0x584d7e
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x18]
sub eax, dword [edx + 8]
sub eax, 2
push eax
mov eax, dword [esp + 0xb4]
push edx
push 2
push ebx
push 0x69
push ecx
push eax
call fcn.00589f60
add esp, 0x24
mov eax, dword [ebp + 0x20]
cmp eax, ebx
je 0x584d97
mov ecx, dword [esp + 0x24]
lea edx, [ecx*4 + 4]
mov ecx, dword [ebp + 0xc]
sub eax, edx
mov dword [eax], ecx
cmp dword [esp + 0x50], ebx
je 0x584e38
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584db4
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584de1
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov ecx, dword [esp + 0x28]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x54]
mov byte [eax], 0x43
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x584df6
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584e0d
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584e92
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x28]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x2b
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
jmp 0x584e92
cmp dword [esp + 0xb4], ebx
je 0x584e92
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584e54
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584e7d
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x54]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 1
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [ebp + 0x62], bl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x584e92
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x10]
test byte [eax + 0x1e], 0x10
jne 0x584f53
cmp dword [esp + 0x5c], 0
jne 0x584f53
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x584ebe
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584eeb
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x44]
xor ecx, ecx
mov byte [eax], 0x2b
mov byte [eax + 3], cl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
jmp 0x584eed
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, ecx
mov dword [esp + 0x30], eax
je 0x584f53
mov ebx, dword [esp + 0x44]
add ebx, 1
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584f16
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584f3f
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
xor ecx, ecx
mov byte [eax], 0x2b
mov byte [eax + 3], cl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
jmp 0x584f41
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
add ebx, 1
cmp eax, ecx
mov dword [esp + 0x30], eax
jne 0x584f03
mov ebx, dword [esp + 0xa8]
cmp byte [ebx + 0x13], 0
jne 0x584f72
cmp dword [ebx + 0x1ac], 0
jne 0x584f72
push ebx
call fcn.00550710
add esp, 4
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x584ffc
cmp byte [ebx + 0x13], 0
jne 0x584ffc
cmp dword [ebx + 0x1ac], 0
jne 0x584ffc
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x584fa1
mov edi, ebp
call fcn.0053f5e0
test eax, eax
jne 0x584fd1
mov eax, dword [ebp + 0x14]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x10
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
push 1
mov edi, ebp
call fcn.00545870
mov eax, dword [ebp]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x584ffc
mov edx, dword [ebp + 0x28]
push 1
push 0xffffffffffffffff
xor eax, eax
mov ecx, str.rows_inserted
call fcn.00561b50
add esp, 8
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x40]
push ecx
call fcn.00539080
mov edx, dword [esp + 0xb4]
push edx
mov edi, esi
call fcn.00538470
mov edi, dword [esp + 0xbc]
add esp, 8
test edi, edi
je 0x58503b
push edi
push esi
call fcn.00539b10
push edi
push esi
call fcn.00531d40
add esp, 0x10
mov ebp, dword [esp + 0xb8]
test ebp, ebp
je 0x58507c
xor ebx, ebx
cmp dword [ebp + 4], ebx
jle 0x585068
lea ecx, [ecx]
mov eax, dword [ebp]
mov ecx, dword [eax + ebx*8]
push ecx
push esi
call fcn.00531d40
add ebx, 1
add esp, 8
cmp ebx, dword [ebp + 4]
jl 0x585050
mov edx, dword [ebp]
push edx
push esi
call fcn.00531d40
push ebp
push esi
call fcn.00531d40
add esp, 0x10
mov eax, dword [esp + 0x64]
push eax
push esi
call fcn.00531d40
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret