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

Disassembly:
sub esp, 0x94
xor eax, eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xa8]
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], 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
cmp dword [edi + 0x40], eax
jne 0x45f1b7
cmp byte [ecx + 0x1e], al
jne 0x45f1b7
mov ecx, dword [esp + 0xac]
cmp dword [ecx + 0xc], eax
je 0x45f1b7
push edi
mov eax, ecx
call fcn.004575c0
mov ebx, eax
add esp, 4
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x45f1b7
mov ebp, dword [esp + 0x40]
mov esi, dword [ebx + 0x44]
mov ecx, ebp
call fcn.004645d0
mov ecx, dword [ebx]
mov esi, eax
mov eax, dword [ebp + 8]
mov edx, esi
shl edx, 4
mov eax, dword [edx + eax]
push eax
push 0
push ecx
push 0x12
mov eax, edi
mov dword [esp + 0x34], esi
call fcn.00451c30
add esp, 0x10
test eax, eax
jne 0x45f1b7
lea edx, [esp + 0x2c]
push edx
push eax
push 0x69
push edi
mov eax, ebx
call fcn.0046d390
mov dword [esp + 0x64], eax
xor eax, eax
cmp dword [ebx + 0x1c], eax
push ebx
setne al
push edi
mov dword [esp + 0x70], eax
call fcn.00454310
add esp, 0x18
test eax, eax
jne 0x45f1b7
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, ebx
mov eax, edi
call fcn.00457620
add esp, 4
test eax, eax
jne 0x45f1b7
call fcn.00466cf0
mov ebp, eax
test ebp, ebp
je 0x45f1b7
cmp byte [edi + 0x13], 0
jne 0x45e085
mov byte [ebp + 0x61], 1
cmp dword [esp + 0xb4], 0
jne 0x45e09a
cmp dword [esp + 0x54], 0
jne 0x45e09a
xor eax, eax
jmp 0x45e09f
mov eax, 1
push eax
mov ecx, esi
mov eax, edi
call fcn.004566c0
add esp, 4
cmp dword [esp + 0xb8], 0
jne 0x45e0d8
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
push esi
push edx
push ebx
push edi
call fcn.004602f0
add esp, 0x10
test eax, eax
jne 0x45f0ad
push esi
mov edx, edi
call fcn.0045d750
xor ebx, ebx
add esp, 4
mov dword [esp + 0x30], eax
cmp dword [esp + 0xb4], ebx
je 0x45e32e
mov esi, 1
add dword [edi + 0x48], esi
mov eax, dword [edi + 0x48]
push eax
mov dword [esp + 0x24], eax
push ebx
push 7
mov eax, ebp
call fcn.0043cf70
add dword [edi + 0x48], esi
mov eax, dword [edi + 0x48]
mov byte [esp + 0x79], bl
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov ebx, dword [ebp + 0xc]
add esp, 0xc
push eax
mov dword [esp + 0x74], eax
add ebx, 2
lea eax, [ebx - 1]
push eax
push 7
mov eax, ebp
mov byte [esp + 0x78], 0xa
call fcn.0043cf70
add esp, 0xc
push 0
push 0
push esi
mov eax, ebp
call fcn.0043cf70
mov edx, dword [esp + 0xc0]
add esp, 0xc
lea ecx, [esp + 0x6c]
push ecx
push edx
push edi
mov esi, eax
call fcn.0046aae0
add esp, 0xc
test eax, eax
jne 0x45f1b7
mov eax, edi
cmp dword [eax + 0x40], 0
jne 0x45f1b7
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 0x1e], 0
jne 0x45f1b7
mov edx, dword [esp + 0x20]
push edx
push 1
push 7
mov eax, ebp
call fcn.0043cf70
mov eax, dword [esp + 0x7c]
add esp, 0xc
push eax
push 4
mov eax, ebp
call fcn.0043cf10
push 2
push 2
push 6
mov eax, ebp
call fcn.0043cf70
mov eax, dword [ebp + 0xc]
add esp, 0x14
cmp eax, esi
jle 0x45e1d6
mov edx, dword [ebp + 0x14]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [edx]
mov dword [esp + 0x28], eax
jne 0x45e256
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0xa8]
push ecx
push edx
mov edi, ebx
mov eax, esi
call fcn.0045d660
add esp, 8
test eax, eax
jne 0x45e258
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
test byte [edi + 0x22], 0x10
je 0x45e3d5
mov ecx, dword [edi + 8]
test ecx, ecx
jle 0x45e3d5
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x18]
add eax, 0x17
lea esp, [esp]
xor edx, edx
cmp byte [eax], dl
setne dl
add eax, 0x18
add esi, edx
sub ecx, 1
jne 0x45e240
jmp 0x45e3d9
mov esi, edi
mov edi, dword [esi + 0x44]
lea eax, [edi + 1]
mov dword [esi + 0x44], eax
mov eax, esi
mov dword [esp + 0x48], 1
mov dword [esp + 0x34], edi
call fcn.0044e540
mov ebx, eax
mov eax, esi
call fcn.0044e540
mov ecx, dword [esp + 0x28]
push ecx
mov dword [esp + 0x20], eax
push edi
push 0x29
mov eax, ebp
call fcn.0043cf70
mov edx, dword [esp + 0x7c]
add esp, 0xc
push edx
push 4
mov eax, ebp
call fcn.0043cf10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
push eax
push 0x1a
mov eax, ebp
call fcn.0043cf10
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x84]
push ebx
push ecx
push edx
mov esi, eax
push 0x1e
mov eax, ebp
call fcn.0043ce60
mov eax, dword [esp + 0x3c]
push eax
push edi
push 0x36
mov eax, ebp
call fcn.0043cf70
mov ecx, dword [esp + 0x48]
add esp, 0x2c
push ecx
push ebx
push edi
push 0x37
mov eax, ebp
call fcn.0043ce60
mov edx, dword [esp + 0x34]
push edx
push 0
push 1
mov eax, ebp
call fcn.0043cf70
mov eax, dword [ebp + 0xc]
add esp, 0x1c
cmp eax, esi
jle 0x45e312
mov edx, dword [ebp + 0x14]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
mov edx, dword [esp + 0xa8]
mov esi, ebx
call fcn.0044e560
mov esi, dword [esp + 0x1c]
call fcn.0044e560
jmp 0x45e215
xor eax, eax
mov dword [esp + 0x7c], 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 eax, dword [esp + 0xb0]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x34], 0xffffffff
cmp eax, ebx
je 0x45e387
mov eax, dword [eax]
jmp 0x45e389
xor eax, eax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x28], eax
jle 0x45e215
mov dword [esp + 0x1c], ebx
jmp 0x45e3a0
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx + ecx]
lea esi, [esp + 0x7c]
call fcn.004495f0
test eax, eax
jne 0x45f1b7
mov ebx, dword [esp + 0x28]
add dword [esp + 0x1c], 0x14
inc edi
cmp edi, ebx
jl 0x45e3a0
jmp 0x45e219
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xb8]
test ecx, ecx
jne 0x45e422
test ebx, ebx
je 0x45e574
mov eax, dword [edi + 8]
sub eax, esi
cmp ebx, eax
je 0x45e569
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
push ecx
push eax
push 0
push edx
push str.table__S_has__d_columns_but__d_values_were_supplied
call fcn.004259e0
add esp, 0x14
jmp 0x45f1b7
mov edx, dword [ecx + 4]
cmp ebx, edx
je 0x45e448
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xa8]
push edx
push eax
push str._d_values_for__d_columns
call fcn.004259e0
add esp, 0xc
jmp 0x45f1b7
xor eax, eax
test edx, edx
jle 0x45e45d
or edx, 0xffffffff
mov esi, dword [ecx]
mov dword [esi + eax*8 + 4], edx
inc eax
cmp eax, dword [ecx + 4]
jl 0x45e451
cmp dword [ecx + 4], 0
mov dword [esp + 0x14], 0
jle 0x45e574
nop
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 8]
xor esi, esi
test ebx, ebx
jle 0x45e4d1
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x24], edx
nop
mov edx, dword [edi]
mov ecx, dword [esp + 0x24]
call fcn.00425ae0
test eax, eax
je 0x45e4b9
inc esi
add edi, 0x18
cmp esi, ebx
jl 0x45e4a0
jmp 0x45e4d1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov dword [ecx + 4], esi
cmp esi, dword [edx + 4]
jne 0x45e4d1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 8]
mov edi, dword [esp + 0x14]
jl 0x45e51e
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov esi, dword [eax + edi*8]
mov edx, str._ROWID_
mov ecx, esi
call fcn.00425ae0
test eax, eax
je 0x45e51a
mov edx, str.ROWID
mov ecx, esi
call fcn.00425ae0
test eax, eax
je 0x45e51a
mov edx, 0x4c2bec
mov ecx, esi
call fcn.00425ae0
test eax, eax
jne 0x45e535
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0xb8]
inc edi
cmp edi, dword [ecx + 4]
mov dword [esp + 0x14], edi
jl 0x45e470
jmp 0x45e574
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov ecx, dword [eax + edi*8]
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
push ecx
push 0
push edx
push str.table__S_has_no_column_named__s
call fcn.004259e0
add esp, 0x10
mov byte [edi + 0x12], 1
jmp 0x45f1b7
test ebx, ebx
jle 0x45e574
mov eax, dword [edi + 4]
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x40]
test dword [esi + 0xc], 0x1000
mov edi, dword [esp + 0xa8]
je 0x45e5a1
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
push eax
mov dword [esp + 0x6c], eax
push 0
push 7
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
cmp dword [esp + 0x58], 0
jne 0x45e5ee
mov eax, dword [edi + 0x44]
push 0x27
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
push edi
call fcn.00460080
mov ebx, eax
add esp, 0xc
lea ecx, [ebx*4 + 4]
call fcn.00423c10
mov dword [esp + 0x5c], eax
test eax, eax
je 0x45f1b7
xor ecx, ecx
test ebx, ebx
jle 0x45e5ee
nop
inc dword [edi + 0x48]
mov edx, dword [edi + 0x48]
mov dword [eax + ecx*4], edx
inc ecx
cmp ecx, ebx
jl 0x45e5e0
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x45e610
mov ecx, dword [esp + 0x34]
push ecx
push 0x41
mov eax, ebp
call fcn.0043cf10
mov edx, dword [ebp + 0xc]
add esp, 8
mov dword [esp + 0x60], edx
jmp 0x45e63d
cmp dword [esp + 0xb4], 0
je 0x45e641
mov eax, dword [esp + 0x70]
push eax
push 4
mov eax, ebp
call fcn.0043cf10
mov ecx, dword [esp + 0x28]
push ecx
mov dword [esp + 0x6c], eax
push 0x1a
mov eax, ebp
call fcn.0043cf10
add esp, 0x10
mov dword [esp + 0x50], eax
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 8]
lea ecx, [eax + 1]
lea eax, [eax + esi + 1]
mov dword [edi + 0x48], eax
test byte [edx + 0x22], 0x10
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], ecx
je 0x45e66f
inc ecx
inc eax
mov dword [esp + 0x18], ecx
mov dword [edi + 0x48], eax
inc ecx
mov eax, ebp
mov dword [esp + 0x24], ecx
call fcn.0043d070
test byte [esp + 0x2c], 1
mov dword [esp + 0x1c], eax
je 0x45e91f
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], esi
jg 0x45e6ad
lea edx, [esi + eax]
sub ecx, eax
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], ecx
jmp 0x45e6bc
mov ecx, dword [edi + 0x48]
lea esi, [ecx + 1]
add ecx, eax
mov dword [esp + 0x20], esi
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x4c]
test eax, eax
jge 0x45e6d5
push esi
push 0xffffffffffffffff
push 7
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
jmp 0x45e73e
test ebx, ebx
je 0x45e6ee
push esi
push eax
mov eax, dword [esp + 0x3c]
push eax
push 0x1c
mov eax, ebp
call fcn.0043ce60
add esp, 0x10
jmp 0x45e705
mov edx, dword [esp + 0xb0]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ecx*4]
mov ecx, edi
call fcn.0044d4e0
push esi
push 0x4a
mov eax, ebp
call fcn.0043cf10
push esi
mov ebx, eax
push 0xffffffffffffffff
push 7
mov eax, ebp
call fcn.0043cf70
mov eax, dword [ebp + 0xc]
add esp, 0x14
cmp eax, ebx
jle 0x45e731
mov edx, dword [ebp + 0x14]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4 + 8], eax
push esi
push 0x15
mov eax, ebp
call fcn.0043cf10
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
mov dword [esp + 0x14], 0
jle 0x45e8a8
mov dword [esp + 0x2c], 0
lea esp, [esp]
mov ebx, dword [esp + 0xb8]
mov edx, dword [esp + 0x14]
test ebx, ebx
jne 0x45e773
mov esi, edx
jmp 0x45e78d
mov ecx, dword [ebx + 4]
xor esi, esi
test ecx, ecx
jle 0x45e78d
mov eax, dword [ebx]
add eax, 4
cmp dword [eax], edx
je 0x45e78d
inc esi
add eax, 8
cmp esi, ecx
jl 0x45e781
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x45e79e
cmp dword [esp + 0xb0], eax
je 0x45e7a7
test ebx, ebx
je 0x45e80f
cmp esi, dword [ebx + 4]
jl 0x45e80f
mov ecx, dword [esp + 0x20]
lea esi, [ecx + edx + 1]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x45e7de
cmp byte [eax], 0x84
jne 0x45e7de
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
push esi
push edx
push 0xe
call fcn.0043cf70
add esp, 0xc
jmp 0x45e88d
push esi
push eax
push edi
call fcn.0044c530
add esp, 0xc
cmp eax, esi
je 0x45e88d
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x45e88d
push esi
push eax
push 0xf
mov eax, ecx
call fcn.0043cf70
add esp, 0xc
jmp 0x45e88d
test eax, eax
je 0x45e86a
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x45e82d
mov edi, ebp
call fcn.0043cde0
mov edi, dword [esp + 0xa8]
test eax, eax
jne 0x45e88d
mov ecx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
mov edx, dword [esp + 0x34]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x20]
lea ecx, [edx + ecx + 1]
mov byte [eax], 0x1c
mov byte [eax + 3], 0
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
jmp 0x45e88d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
lea ebx, [edx + eax + 1]
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + 0xc]
lea ecx, [esi + esi*4]
mov esi, dword [eax + ecx*4]
mov eax, edi
call fcn.0044d530
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x2c], 0x18
inc eax
cmp eax, dword [ecx + 8]
mov dword [esp + 0x14], eax
jl 0x45e760
cmp dword [esp + 0x58], 0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
jne 0x45e8d6
mov edx, dword [ebx + 8]
push edx
lea eax, [esi + 1]
push eax
push 0x1d
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
push ebp
mov eax, ebx
call fcn.0045d5a0
add esp, 4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov eax, esi
sub eax, dword [ebx + 8]
dec eax
push eax
push ebx
push 1
push 0
push 0x69
push ecx
push edi
call fcn.0046db50
mov ebx, dword [ebx + 8]
add esp, 0x24
inc ebx
push esi
mov eax, ebx
mov esi, edi
call fcn.0044c170
add esp, 4
cmp ebx, dword [edi + 0x38]
jle 0x45e91f
mov edx, dword [esp + 0x20]
mov dword [edi + 0x38], ebx
mov dword [edi + 0x3c], edx
cmp dword [esp + 0x58], 0
jne 0x45ee40
mov ebx, dword [esp + 0x10]
test byte [ebx + 0x22], 0x10
je 0x45e947
mov eax, dword [esp + 0x3c]
push eax
push 0
push 0xa
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
test eax, eax
jl 0x45ea6e
cmp dword [esp + 0x48], 0
je 0x45e9c5
mov ecx, dword [esp + 0x34]
push esi
push eax
push ecx
push 0x1c
mov eax, ebp
call fcn.0043ce60
add esp, 0x10
test byte [ebx + 0x22], 0x10
jne 0x45ea4b
push esi
push 0x4a
mov eax, ebp
call fcn.0043cf10
mov ecx, dword [esp + 0x40]
mov edi, eax
mov eax, dword [esp + 0x38]
push eax
push esi
push ecx
push 0x36
mov eax, ebp
call fcn.0043ce60
mov eax, dword [ebp + 0xc]
add esp, 0x18
cmp eax, edi
jle 0x45ea5f
mov ecx, dword [ebp + 0x14]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 8], eax
push esi
push 0x15
mov eax, ebp
call fcn.0043cf10
add esp, 8
jmp 0x45eaa4
cmp dword [esp + 0xb4], 0
je 0x45e9e5
mov edx, dword [esp + 0x44]
add edx, eax
push esi
push edx
push 0xf
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
jmp 0x45e971
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0xa8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4]
call fcn.0044d4e0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
dec eax
cmp byte [ecx + 0x1e], 0
je 0x45ea15
mov eax, 0x4ba8b8
jmp 0x45ea26
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edx*4]
test eax, eax
je 0x45e971
cmp byte [eax], 0xa
jne 0x45e971
test byte [ebx + 0x22], 0x10
jne 0x45ea4b
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov byte [eax], 0x36
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
jmp 0x45ea9c
mov edx, dword [ebp + 0xc]
add edx, 2
push edx
push esi
push 0x49
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
push esi
push 0x15
mov eax, ebp
call fcn.0043cf10
add esp, 8
jmp 0x45eaa4
test byte [ebx + 0x22], 0x10
je 0x45ea85
push esi
push 0
push 0xa
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
jmp 0x45eaa4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
push eax
push esi
push ecx
push 0x36
mov eax, ebp
call fcn.0043ce60
add esp, 0x10
mov dword [esp + 0x64], 1
mov eax, dword [esp + 0x30]
xor edi, edi
cmp eax, edi
jle 0x45eac4
mov edx, dword [esp + 0xa8]
push esi
push eax
mov eax, dword [edx + 0xc]
push 0x70
call fcn.0043cf70
add esp, 0xc
cmp dword [ebx + 8], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
jle 0x45ecd3
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp edi, dword [ecx + 4]
jne 0x45eb31
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45eb05
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45ecb7
mov ecx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0xa
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [ebp + 0x62], cl
jmp 0x45ecb7
mov esi, dword [esp + 0xb8]
test esi, esi
jne 0x45ebb0
mov edx, dword [ecx + 0xc]
mov eax, dword [esp + 0x30]
cmp byte [edx + eax + 0x17], 0
je 0x45eba8
inc dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x45ec52
cmp byte [eax], 0x84
jne 0x45ec52
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xa8]
mov edi, dword [eax + 0xc]
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov dword [esp + 0x2c], edx
jg 0x45eb90
call fcn.0043cde0
test eax, eax
jne 0x45ecb7
mov edx, dword [edi + 0x14]
inc dword [edi + 0xc]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0xe
jmp 0x45eca0
mov eax, edi
sub eax, dword [esp + 0x18]
jmp 0x45ebd0
mov edx, dword [esi + 4]
xor eax, eax
test edx, edx
jle 0x45ebd8
mov ecx, dword [esi]
add ecx, 4
mov edi, edi
cmp dword [ecx], edi
je 0x45ebcc
inc eax
add ecx, 8
cmp eax, edx
jl 0x45ebc0
mov ecx, dword [esp + 0x10]
test eax, eax
jl 0x45eb4e
cmp dword [esp + 0x28], 0
je 0x45eb4e
test esi, esi
je 0x45ebf0
cmp eax, dword [esi + 4]
jge 0x45eb4e
cmp dword [esp + 0x48], 0
je 0x45ec0f
mov ecx, dword [esp + 0x34]
push ebx
push eax
push ecx
push 0x1c
mov eax, ebp
call fcn.0043ce60
add esp, 0x10
jmp 0x45ecb7
cmp dword [esp + 0xb4], 0
je 0x45ec32
mov edx, dword [esp + 0x44]
add eax, edx
push ebx
push eax
push 0xf
mov eax, ebp
call fcn.0043cf70
add esp, 0xc
jmp 0x45ecb7
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0xa8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4]
mov esi, ebx
call fcn.0044d4e0
jmp 0x45ecb7
mov edx, dword [esp + 0xa8]
push ebx
push eax
push edx
call fcn.0044c530
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x2c], ecx
cmp ecx, ebx
je 0x45ecb7
mov eax, dword [esp + 0xa8]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x45ecb7
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
jg 0x45ec91
call fcn.0043cde0
test eax, eax
jne 0x45ecb7
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi + 0x14]
inc dword [edi + 0xc]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0xf
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], cl
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov byte [edi + 0x62], cl
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x30], 0x18
inc eax
inc ebx
cmp eax, dword [ecx + 8]
mov dword [esp + 0x14], eax
jl 0x45eae1
mov esi, dword [esp + 0x10]
test byte [esi + 0x22], 0x10
je 0x45edcb
mov eax, dword [esi + 0x34]
mov dword [esp + 0x44], eax
test eax, eax
je 0x45ecff
mov ecx, dword [esp + 0x40]
cmp dword [eax], ecx
je 0x45ecfb
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x45ecf0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xa8]
push esi
call fcn.004715a0
mov ebx, dword [esi + 8]
mov esi, dword [ebp + 0xc]
add esp, 4
add ebx, 2
cmp dword [ebp + 0x10], esi
jg 0x45ed2f
mov edi, ebp
call fcn.0043cde0
test eax, eax
je 0x45ed2f
mov eax, 1
jmp 0x45ed65
mov eax, dword [ebp + 0x14]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov byte [eax], 0x85
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
mov eax, esi
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp]
xor ebx, ebx
cmp esi, ebx
je 0x45edaf
cmp byte [edi + 0x1e], bl
jne 0x45edaf
cmp eax, ebx
jge 0x45ed7e
mov eax, dword [ebp + 0xc]
dec eax
lea edx, [eax + eax*4]
movsx eax, byte [esi + edx*4 + 1]
mov ecx, dword [esi + edx*4 + 0x10]
lea esi, [esi + edx*4]
call fcn.0043d330
mov eax, dword [esp + 0x44]
mov dword [esi + 0x10], ebx
cmp eax, ebx
jne 0x45eda5
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x45edaf
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf6
inc dword [eax + 0xc]
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + 0x1a8]
cmp eax, ebx
jne 0x45edc2
mov eax, ecx
mov byte [eax + 0x159], 1
jmp 0x45ee40
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0xa8]
lea eax, [esp + 0x3c]
push eax
xor eax, eax
cmp dword [esp + 0x50], eax
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x44]
setge al
push 0
push eax
push ecx
push edi
push edx
push esi
push ebx
call fcn.0045f260
push edi
push 0
push esi
mov eax, ebx
call fcn.0045c040
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
add esp, 0x34
xor eax, eax
cmp dword [esp + 0x3c], eax
sete al
push eax
mov eax, dword [esp + 0x3c]
push ecx
push 0
push edx
push edi
push eax
push esi
push ebx
call fcn.0045fe20
add esp, 0x20
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x45ee94
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45ee60
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45ee94
mov eax, dword [ebp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x68]
mov ecx, 1
add dword [ebp + 0xc], ecx
xor esi, esi
mov byte [eax], 0x14
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
jmp 0x45ee96
xor esi, esi
mov ecx, dword [esp + 0x54]
cmp ecx, esi
je 0x45eed1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x28]
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 esi
push 0x69
push ecx
push eax
call fcn.0046db50
add esp, 0x24
mov eax, dword [ebp + 0x20]
cmp eax, esi
je 0x45eeea
mov ecx, dword [esp + 0x1c]
lea edx, [ecx*4 + 4]
mov ecx, dword [ebp + 0xc]
sub eax, edx
mov dword [eax], ecx
cmp dword [esp + 0x48], esi
je 0x45ef8f
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x45ef07
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45ef36
mov eax, dword [ebp + 0x14]
inc dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x60]
mov byte [eax], 0x43
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jle 0x45ef4b
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x45ef62
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45efeb
mov ecx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
mov edx, dword [esp + 0x34]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x2b
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
jmp 0x45efeb
cmp dword [esp + 0xb4], esi
je 0x45efeb
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x10], ebx
jg 0x45efab
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45efd6
mov ecx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
mov edx, dword [esp + 0x60]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov byte [eax], 1
mov byte [eax + 3], 0
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov byte [ebp + 0x62], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jle 0x45efeb
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 + 0x22], 0x10
jne 0x45f0a6
cmp dword [esp + 0x58], 0
jne 0x45f0a6
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45f017
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45f043
mov edx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x38]
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 0x45f045
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x45f0a6
mov ebx, dword [esp + 0x38]
inc ebx
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45f06c
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45f094
mov edx, dword [ebp + 0x14]
inc dword [ebp + 0xc]
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 0x45f096
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
inc ebx
mov dword [esp + 0x24], eax
cmp eax, ecx
jne 0x45f059
mov edi, dword [esp + 0xa8]
cmp byte [edi + 0x13], 0
jne 0x45f0c5
cmp dword [edi + 0x1ac], 0
jne 0x45f0c5
push edi
call fcn.0045db60
add esp, 4
mov ecx, dword [esp + 0x40]
test dword [ecx + 0xc], 0x1000
je 0x45f1b7
cmp byte [edi + 0x13], 0
jne 0x45f1b7
cmp dword [edi + 0x1ac], 0
jne 0x45f1b7
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45f100
mov edi, ebp
call fcn.0043cde0
test eax, eax
jne 0x45f130
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 + 0x68]
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.0043e1e0
mov eax, dword [ebp]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x45f1b7
mov ebp, dword [ebp + 0x28]
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp eax, ebx
je 0x45f156
mov eax, dword [eax + 0x48]
jmp 0x45f15b
mov eax, 0x3b9aca00
xor esi, esi
cmp eax, ebx
jl 0x45f16f
cmp byte [esi + str.rows_inserted], 0
je 0x45f16f
inc esi
cmp esi, eax
jle 0x45f161
xor ecx, ecx
mov edi, 0x202
push ebp
cmp ecx, fcn.004239e0
jne 0x45f191
call fcn.0043bd40
mov eax, str.rows_inserted
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x24], eax
jmp 0x45f1a2
call fcn.0043bd40
mov dword [ebp + 0x14], str.rows_inserted
mov edi, 0xa02
mov dword [ebp + 0x20], ebx
add esp, 4
mov dword [ebp + 0x18], esi
mov word [ebp + 0x1c], di
mov byte [ebp + 0x1f], 1
mov byte [ebp + 0x1e], 3
mov edx, dword [esp + 0xac]
mov esi, dword [esp + 0x40]
push edx
call fcn.00456010
mov eax, dword [esp + 0xb4]
add esp, 4
push eax
mov edi, esi
call fcn.0044ad60
mov edi, dword [esp + 0xb8]
add esp, 4
test edi, edi
je 0x45f1f9
push edi
push esi
call fcn.00464d00
push edi
push esi
call fcn.004239e0
add esp, 0x10
mov ebp, dword [esp + 0xb8]
test ebp, ebp
je 0x45f23a
xor ebx, ebx
cmp dword [ebp + 4], ebx
jle 0x45f226
jmp 0x45f210
mov ecx, dword [ebp]
mov edx, dword [ecx + ebx*8]
push edx
push esi
call fcn.004239e0
inc ebx
add esp, 8
cmp ebx, dword [ebp + 4]
jl 0x45f210
mov eax, dword [ebp]
push eax
push esi
call fcn.004239e0
push ebp
push esi
call fcn.004239e0
add esp, 0x10
mov ecx, dword [esp + 0x5c]
push ecx
push esi
call fcn.004239e0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret