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

Disassembly:
sub esp, 0xac
push ebx
push ebp
mov ebp, ecx
mov ebx, edx
xor edx, edx
mov dword [esp + 0x14], ebx
push esi
or ecx, 0xffffffff
mov dword [esp + 0x1c], edx
push edi
mov edi, dword [ebp]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], edx
mov byte [esp + 0x17], dl
mov dword [esp + 0x40], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x6c], edi
cmp dword [ebp + 0x24], edx
jne 0x44a44d
cmp byte [edi + 0x51], dl
jne 0x44a44d
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], esi
test esi, esi
je 0x4495be
test dword [esi + 8], 0x200
je 0x4495be
cmp dword [esi + 0x34], edx
jne 0x4495be
mov eax, dword [esi]
mov ecx, edi
mov dword [esi], edx
mov edx, esi
mov dword [esp + 0x40], eax
call fcn.0044fedd
and dword [esp + 0x18], 0
mov edx, ebx
mov ecx, ebp
call fcn.00444d33
mov ebx, eax
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x44a456
mov edx, dword [ebx + 0x48]
mov ecx, edi
call fcn.0044f7ee
mov esi, eax
mov eax, dword [edi + 0x10]
mov ecx, esi
mov dword [esp + 0x54], esi
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, ebp
push 0
push dword [ebx]
push 0x12
pop edx
call fcn.0043f8da
add esp, 0xc
test eax, eax
jne 0x449a5e
mov eax, dword [ebx + 0x24]
mov edx, ebx
shr eax, 5
mov ecx, ebp
and eax, 0xffffff01
mov dword [esp + 0x90], eax
lea eax, [esp + 0x74]
push eax
push 0
push 0x7b
call fcn.0045736c
add esp, 0xc
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0xc]
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x50], eax
call fcn.00441d7d
test eax, eax
jne 0x449a5e
push dword [esp + 0x74]
mov edx, ebx
mov ecx, ebp
call fcn.00444d70
pop ecx
test eax, eax
jne 0x449a5e
mov ecx, ebp
call fcn.00451ae0
mov edi, eax
mov dword [esp + 0x24], edi
test edi, edi
je 0x449a5e
cmp byte [ebp + 0x12], 0
jne 0x449683
or dword [edi + 0x98], 0x20
cmp dword [esp + 0x18], 0
jne 0x449695
cmp dword [esp + 0x70], 0
jne 0x449695
xor edx, edx
jmp 0x449698
xor edx, edx
inc edx
push esi
mov ecx, ebp
call fcn.0044417c
cmp dword [esp + 0xc8], 0
pop ecx
jne 0x4496cb
push esi
push dword [esp + 0xcc]
mov edx, ebx
mov ecx, ebp
push dword [esp + 0x20]
call fcn.0044b3c9
add esp, 0xc
test eax, eax
jne 0x44a3f0
push ebx
mov edx, esi
mov ecx, ebp
call fcn.004492ec
pop ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x3c], eax
movsx eax, word [ebx + 0x2a]
inc eax
lea esi, [ecx + 1]
add eax, ecx
mov edx, esi
mov dword [ebp + 0x2c], eax
cmp dword [ebx + 0x38], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x30], edx
je 0x449705
lea edx, [esi + 1]
inc eax
mov dword [esp + 0x30], edx
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebx + 0x24]
lea eax, [edx + 1]
mov edx, dword [esp + 0xc4]
shr ecx, 7
not cl
mov dword [esp + 0x68], eax
and ecx, 0xffffff01
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x449836
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x449745
mov eax, dword [edx]
or dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x449736
xor esi, esi
test eax, eax
jle 0x449836
movzx eax, word [ebx + 0x2a]
cwde
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], eax
test eax, eax
jle 0x4497df
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
mov dword [esp + 0x8c], eax
mov ecx, dword [eax + esi*8]
mov eax, dword [ebx + 4]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x28], eax
mov edx, dword [eax]
call fcn.0041505e
mov edx, dword [esp + 0x44]
test eax, eax
je 0x4497b1
mov eax, dword [esp + 0x28]
inc edx
mov ecx, dword [esp + 0x94]
add eax, 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], eax
cmp edx, dword [esp + 0x38]
jl 0x449783
jmp 0x4497df
mov eax, dword [esp + 0x8c]
cmp esi, edx
mov ecx, dword [esp + 0x2c]
push 0
mov dword [eax + esi*8 + 4], edx
movzx eax, cl
pop ecx
cmove ecx, eax
movsx eax, word [ebx + 0x28]
mov byte [esp + 0x2c], cl
cmp edx, eax
jne 0x4497df
mov dword [esp + 0x58], esi
mov byte [esp + 0x2c], cl
movzx eax, word [ebx + 0x2a]
cwde
cmp edx, eax
jl 0x449821
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
mov eax, dword [eax + esi*8]
mov ecx, eax
mov dword [esp + 0x8c], eax
call fcn.00438cc3
test eax, eax
je 0x449926
cmp byte [esp + 0x90], 0
jne 0x449926
mov dword [esp + 0x58], esi
mov byte [esp + 0x2c], 0
mov ecx, dword [esp + 0xc4]
inc esi
movzx eax, word [ebx + 0x2a]
cmp esi, dword [ecx + 4]
jl 0x449753
cmp dword [esp + 0x18], 0
je 0x449a20
inc dword [ebp + 0x2c]
mov ecx, edi
mov esi, dword [edi + 0x6c]
mov eax, dword [ebp + 0x2c]
inc esi
push esi
push 0
push eax
push 0xd
pop edx
mov dword [esp + 0x34], eax
call fcn.004293f8
mov eax, dword [esp + 0x34]
add esp, 0xc
and dword [esp + 0xa8], 0
mov ecx, ebp
mov edx, dword [esp + 0x18]
mov dword [esp + 0x9c], eax
xor eax, eax
cmp byte [esp + 0x2c], al
mov byte [esp + 0x98], 0xd
cmovne eax, dword [esp + 0x68]
mov dword [esp + 0xa0], eax
movsx eax, word [ebx + 0x2a]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x98]
push eax
call fcn.00454e88
pop ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x78], ecx
test eax, eax
jne 0x449a5e
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x51], 0
jne 0x449a5e
cmp dword [ebp + 0x24], 0
jne 0x449a5e
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00429690
lea edx, [esi - 1]
mov ecx, edi
call fcn.00429b75
cmp dword [esp + 0x70], 0
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [esp + 0x38], esi
jne 0x44994b
mov edx, dword [esp + 0x54]
mov ecx, ebp
push ebx
call fcn.00449267
pop ecx
test eax, eax
jne 0x44994b
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x48], eax
jmp 0x449ad4
push dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
push 0
push edi
push str.table__S_has_no_column_named__s
push ebp
call fcn.00414f88
add esp, 0x14
mov byte [ebp + 0x11], 1
jmp 0x449a62
mov edx, dword [ebp + 0x28]
mov ecx, ebp
mov byte [esp + 0x17], 1
mov dword [esp + 0x34], edx
lea eax, [edx + 1]
mov dword [ebp + 0x28], eax
call fcn.0043c449
mov edi, eax
call fcn.0043c449
mov ecx, dword [esp + 0x24]
mov ebx, eax
push 0
push esi
push edx
push 0x70
pop edx
call fcn.004293f8
mov eax, dword [esp + 0xa8]
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
push 0
push 0
push eax
push 0xe
pop edx
call fcn.004293f8
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push edi
push dword [esp + 0x3c]
push dword [esp + 0x80]
push 0x5c
pop edx
call fcn.004293f8
mov ecx, dword [esp + 0x30]
add esp, 0xc
push 0
push ebx
push dword [esp + 0x3c]
push 0x79
pop edx
call fcn.004293f8
mov ecx, dword [esp + 0x30]
add esp, 0xc
push ebx
push edi
push dword [esp + 0x3c]
push 0x7a
pop edx
call fcn.004293f8
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, esi
call fcn.00429475
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.00429b75
mov ecx, dword [ecx + 0x6c]
mov edx, edi
mov dword [eax + 8], ecx
mov ecx, ebp
call fcn.0043c468
mov edx, ebx
call fcn.0043c468
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x38]
jmp 0x449ad0
or dword [esp + 0x34], 0xffffffff
lea edi, [esp + 0x98]
push 8
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x98], ebp
test eax, eax
je 0x449aca
mov esi, dword [eax]
lea ecx, [esp + 0x98]
mov edx, eax
mov dword [esp + 0x38], esi
call fcn.00437019
test eax, eax
je 0x449ad0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov edx, edi
mov ecx, ebp
call fcn.00443d0a
mov eax, dword [esp + 0x40]
test eax, eax
je 0x449a8b
mov edx, eax
mov ecx, ebp
call fcn.004388f2
mov edx, esi
mov ecx, ebp
call fcn.00458f2c
mov edx, ebx
mov ecx, ebp
call fcn.0044fedd
mov edx, dword [esp + 0xc4]
mov ecx, ebp
call fcn.00443a79
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x44a46a
mov edx, eax
mov ecx, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
jmp fcn.00412a50
xor esi, esi
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0x449aeb
test esi, esi
jle 0x449aeb
movsx ecx, word [ebx + 0x28]
mov dword [esp + 0x58], ecx
movsx ecx, word [ebx + 0x2a]
test ecx, ecx
jle 0x449b16
mov edx, dword [ebx + 4]
mov esi, ecx
add edx, 0xf
movzx eax, byte [edx]
lea edx, [edx + 0x10]
shr eax, 1
and eax, 1
add dword [esp + 0x20], eax
sub esi, 1
jne 0x449afb
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x38]
test eax, eax
jne 0x449b45
test edx, edx
je 0x449b61
sub ecx, dword [esp + 0x20]
cmp edx, ecx
je 0x449b61
mov edi, dword [esp + 0x1c]
push edx
push ecx
push eax
push edi
push str.table__S_has__d_columns_but__d_values_were_supplied
push ebp
call fcn.00414f88
add esp, 0x18
jmp 0x449a62
cmp edx, dword [eax + 4]
je 0x449b61
push dword [eax + 4]
push edx
push str._d_values_for__d_columns
push ebp
call fcn.00414f88
add esp, 0x10
jmp 0x449a5e
mov esi, dword [esp + 0x6c]
xor ecx, ecx
mov eax, dword [esi + 0x20]
and eax, 0x80
or eax, ecx
je 0x449b9c
cmp byte [ebp + 0x12], cl
jne 0x449b9c
cmp dword [ebp + 0x70], ecx
jne 0x449b9c
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
push ecx
push eax
push ecx
push 0x46
pop edx
mov ecx, edi
mov dword [esp + 0x94], eax
call fcn.004293f8
add esp, 0xc
xor ecx, ecx
cmp dword [esp + 0x50], 0
jne 0x449c2a
lea eax, [esp + 0x7c]
mov edx, ebx
push eax
lea eax, [esp + 0x50]
push eax
push ecx
push 0xffffffffffffffff
push ecx
push 0x62
mov ecx, ebp
call fcn.0044b20a
mov dword [esp + 0x40], eax
mov ecx, esi
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.00412c70
add esp, 0x20
mov dword [esp + 0x5c], eax
test eax, eax
je 0x449a5e
mov esi, dword [ebx + 8]
xor edx, edx
cmp dword [esp + 0x28], edx
jle 0x449c1c
mov edi, dword [esp + 0x28]
mov ebx, eax
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
mov dword [ebx + edx*4], eax
movzx ecx, word [esi + 0x34]
mov eax, dword [ebp + 0x2c]
add eax, ecx
inc edx
mov dword [ebp + 0x2c], eax
mov esi, dword [esi + 0x14]
cmp edx, edi
jl 0x449bf5
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
jmp 0x449c1f
mov eax, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x5c]
inc eax
mov dword [ebp + 0x2c], eax
mov dword [ecx + edx*4], eax
mov esi, dword [esp + 0xcc]
test esi, esi
je 0x449c8e
cmp dword [ebx + 0x38], 0
je 0x449c54
push dword [ebx]
push str.UPSERT_not_implemented_for_virtual_table___s_
push ebp
call fcn.00414f88
add esp, 0xc
mov edi, dword [esp + 0x1c]
jmp 0x449a69
mov edx, dword [esi]
mov ecx, ebp
call fcn.00442b2e
test eax, eax
jne 0x449c4b
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x68]
mov dword [edx + 0x34], ecx
cmp dword [esi], 0
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
je 0x449c8e
push esi
mov ecx, ebp
call fcn.00458fde
pop ecx
cmp byte [esp + 0x17], 0
je 0x449cba
push 0
push 0
push dword [esp + 0x3c]
mov ecx, edi
push 0x24
pop edx
call fcn.004293f8
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x8c], eax
jmp 0x449ce3
cmp dword [esp + 0x18], 0
je 0x449ce6
push 0
push 0
push dword [esp + 0x50]
mov ecx, edi
push 0xe
pop edx
call fcn.004293f8
mov ecx, eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
add esp, 0xc
dec dword [ebp + 0x38]
test byte [esp + 0x74], 1
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x44], eax
je 0x449f42
movsx edx, word [ebx + 0x2a]
mov ecx, ebp
inc edx
call fcn.0043c481
mov esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], esi
test eax, eax
jns 0x449d1e
or eax, 0xffffffff
mov ecx, esi
push 0x46
jmp 0x449d8f
cmp byte [esp + 0x17], 0
push esi
je 0x449d3a
push eax
push dword [esp + 0x3c]
mov ecx, edi
push 0x5a
pop edx
call fcn.004293f8
add esp, 0xc
jmp 0x449d4d
imul edx, eax, 0x18
mov ecx, ebp
mov eax, dword [esp + 0x44]
mov edx, dword [edx + eax + 4]
call fcn.0043b0ed
pop ecx
push 0
push 0
push esi
push 0x33
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
mov ecx, edi
mov esi, eax
push 0
push dword [esp + 0x24]
push 0xffffffffffffffff
push 0x46
pop edx
call fcn.004293f8
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00429b75
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x20]
push 0xf
mov dword [eax + 8], ecx
mov eax, esi
xor ecx, ecx
pop edx
push 0
push ecx
push eax
mov ecx, edi
call fcn.004293f8
movzx eax, word [ebx + 0x2a]
xor edx, edx
and dword [esp + 0x60], edx
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x48], edx
cmp word [esp + 0x54], ax
jge 0x449ee9
and dword [esp + 0x28], edx
lea ecx, [esi + 1]
or eax, 0xffffffff
mov dword [esp + 0x2c], ecx
sub eax, esi
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0xc4]
test esi, esi
je 0x449e10
xor edx, edx
mov dword [esp + 0x48], edx
cmp dword [esi + 4], edx
jle 0x449e10
mov ecx, dword [esi]
mov edi, dword [esp + 0x2c]
add ecx, 4
mov ebx, dword [esp + 0x74]
lea eax, [ebx + edi]
cmp dword [ecx], eax
je 0x449e00
inc edx
add ecx, 8
cmp edx, dword [esi + 4]
jl 0x449df0
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x48], edx
mov al, byte [esp + 0x17]
test al, al
jne 0x449e1f
cmp dword [esp + 0x40], 0
je 0x449e28
test esi, esi
je 0x449e3e
cmp edx, dword [esi + 4]
jl 0x449e3e
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, ebp
mov edx, dword [edx + eax + 4]
call fcn.0043b0ed
pop ecx
jmp 0x449eaa
push ecx
test al, al
je 0x449e57
push edx
push dword [esp + 0x3c]
mov ecx, edi
push 0x5a
pop edx
call fcn.004293f8
add esp, 0xc
jmp 0x449eaa
mov esi, dword [ebp + 8]
mov ecx, ebp
imul eax, edx, 0x18
mov edx, dword [esp + 0x44]
mov ebx, dword [eax + edx + 4]
mov edx, ebx
call fcn.0043b0ed
inc dword [ebp + 0x2c]
mov edi, dword [ebp + 0x2c]
pop ecx
push 0
push edi
push dword [esp + 0x34]
mov ecx, esi
push 0x4e
pop edx
call fcn.004293f8
add esp, 0xc
mov ecx, ebx
call fcn.00437202
mov ebx, dword [esp + 0x60]
mov cl, byte [eax]
and dword [eax + 4], 0xffffefff
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x24]
mov byte [eax + 0x22], cl
mov byte [eax], 0xab
mov ecx, dword [esp + 0x48]
add dword [esp + 0x28], 0x10
mov esi, dword [esp + 0x2c]
inc esi
cmp dword [esp + 0xc4], 0
lea edx, [ecx + 1]
mov dword [esp + 0x2c], esi
cmovne edx, ecx
mov ecx, dword [esp + 0x74]
add ecx, esi
mov dword [esp + 0x48], edx
movzx esi, word [ebx + 0x2a]
movsx eax, si
cmp ecx, eax
mov ecx, dword [esp + 0x2c]
jl 0x449dcd
mov ecx, esi
cmp dword [esp + 0x50], 0
mov esi, dword [esp + 0x20]
movzx eax, cx
jne 0x449f09
lea eax, [esi + 1]
mov edx, ebx
push eax
mov ecx, edi
call fcn.004491ba
movzx eax, word [ebx + 0x2a]
pop ecx
push dword [esp + 0x44]
mov edx, dword [esp + 0x74]
mov ecx, esi
push dword [esp + 0xcc]
cwde
sub ecx, eax
dec ecx
push ecx
push ebx
push 1
push 0
push 0x7b
mov ecx, ebp
call fcn.00457942
movsx eax, word [ebx + 0x2a]
add esp, 0x1c
inc eax
mov edx, esi
mov ecx, ebp
push eax
call fcn.0043c4b7
add esp, 4
cmp dword [esp + 0x50], 0
jne 0x44a25f
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x449f6c
push 0
push dword [esp + 0x68]
mov ecx, edi
push 0
push 0x49
pop edx
call fcn.004293f8
mov ecx, dword [ebx + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x58]
test eax, eax
js 0x44a06a
cmp byte [esp + 0x17], 0
je 0x449f98
mov esi, dword [esp + 0x30]
push esi
push eax
push dword [esp + 0x3c]
push 0x5a
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
jmp 0x449ff3
cmp dword [esp + 0x18], 0
je 0x449faf
mov esi, dword [esp + 0x30]
add eax, dword [esp + 0x78]
push 0
push esi
push eax
push 0x4e
jmp 0x449f8b
mov edx, dword [esp + 0x40]
imul eax, eax, 0x18
mov edx, dword [eax + edx + 4]
cmp byte [edx], 0x75
jne 0x449fe6
test ecx, ecx
jne 0x449fe6
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x34]
push dword [esp + 0x54]
push 0x79
pop edx
call fcn.004293f8
add esp, 0xc
mov dword [esp + 0x20], 1
jmp 0x44a064
mov esi, dword [esp + 0x30]
mov ecx, ebp
push esi
call fcn.0043b0ed
pop ecx
xor eax, eax
mov ecx, edi
push eax
cmp dword [ebx + 0x38], eax
jne 0x44a03a
push eax
push esi
push 0x33
pop edx
call fcn.004293f8
add esp, 0xc
mov ecx, edi
mov esi, eax
push dword [esp + 0x3c]
push dword [esp + 0x34]
push dword [esp + 0x54]
push 0x79
pop edx
call fcn.004293f8
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00429b75
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x30]
mov dword [eax + 8], ecx
jmp 0x44a04d
mov eax, dword [edi + 0x6c]
add eax, 2
push eax
push esi
push 0x32
pop edx
call fcn.004293f8
add esp, 0xc
push 0
push 0
push esi
push 0xf
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
and dword [esp + 0x20], 0
mov esi, dword [esp + 0x30]
jmp 0x44a0b6
test ecx, ecx
jne 0x44a09b
cmp byte [esp + 0x90], cl
jne 0x44a09b
push dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov ecx, edi
push esi
push dword [esp + 0x54]
push 0x79
pop edx
call fcn.004293f8
add esp, 0xc
mov dword [esp + 0x20], 1
jmp 0x44a0b6
mov esi, dword [esp + 0x30]
mov ecx, edi
push 0
push esi
push 0
push 0x49
pop edx
call fcn.004293f8
add esp, 0xc
and dword [esp + 0x20], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x44a0d2
mov ecx, dword [ebp + 8]
mov edx, 0x97
push 0
push esi
push eax
call fcn.004293f8
add esp, 0xc
and dword [esp + 0x3c], 0
xor eax, eax
xor esi, esi
cmp ax, word [ebx + 0x2a]
jge 0x44a1fc
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x68]
movsx eax, word [ebx + 0x28]
add edx, esi
mov dword [esp + 0x54], edx
cmp esi, eax
jne 0x44a114
push 0
push 0
push edx
push 0x4a
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
jmp 0x44a1e4
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0x44a14a
mov eax, dword [ebx + 4]
mov dl, byte [eax + ecx + 0xf]
mov eax, dword [esp + 0x3c]
and dl, 2
je 0x44a134
or ecx, 0xffffffff
jmp 0x44a138
mov ecx, esi
sub ecx, eax
inc eax
test dl, dl
mov edx, dword [esp + 0x54]
cmove eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
jmp 0x44a16e
xor ecx, ecx
cmp dword [eax + 4], ecx
jle 0x44a179
mov eax, dword [eax]
mov ebx, dword [esp + 0xc4]
add eax, 4
cmp dword [eax], esi
je 0x44a16a
inc ecx
add eax, 8
cmp ecx, dword [ebx + 4]
jl 0x44a15d
mov ebx, dword [esp + 0x60]
test ecx, ecx
js 0x44a1d0
mov eax, dword [esp + 0xc4]
cmp dword [esp + 0x38], 0
je 0x44a1d0
test eax, eax
je 0x44a189
cmp ecx, dword [eax + 4]
jge 0x44a1d0
cmp byte [esp + 0x17], 0
je 0x44a19d
push edx
push ecx
push dword [esp + 0x3c]
push 0x5a
jmp 0x44a104
cmp dword [esp + 0x18], 0
je 0x44a1bb
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x68]
je 0x44a1e4
push 0
push edx
add eax, ecx
push eax
push 0x4f
jmp 0x44a104
mov eax, dword [esp + 0x40]
push edx
imul edx, ecx, 0x18
mov ecx, ebp
mov edx, dword [edx + eax + 4]
call fcn.0043b0ed
jmp 0x44a1e3
mov eax, dword [esp + 0x50]
mov ecx, ebp
push edx
mov edx, dword [ebx + 4]
mov edx, dword [edx + eax + 4]
call fcn.0043b16d
pop ecx
mov ecx, dword [esp + 0x50]
inc esi
movsx eax, word [ebx + 0x2a]
add ecx, 0x10
mov dword [esp + 0x50], ecx
cmp esi, eax
jl 0x44a0eb
cmp dword [ebx + 0x38], 0
mov edx, ebx
je 0x44a30a
mov ecx, dword [esp + 0x6c]
call fcn.00459b8f
mov ecx, ebp
mov esi, eax
call fcn.0045a82f
movsx eax, word [ebx + 0x2a]
mov ecx, edi
push 0xfffffffffffffff4
push esi
push dword [esp + 0x6c]
push 2
pop esi
add eax, esi
push eax
push 1
push 0xa
pop edx
call fcn.00429535
mov eax, dword [esp + 0xdc]
add esp, 0x14
cmp eax, 0xb
movzx edx, ax
mov ecx, edi
cmove edx, esi
call fcn.004298e0
cmp dword [ebp + 0x6c], 0
mov eax, ebp
cmovne eax, dword [ebp + 0x6c]
mov byte [eax + 0x15], 1
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x88]
test eax, eax
je 0x44a280
push 0
push 1
push eax
push 0x53
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
mov edx, dword [esp + 0x70]
test edx, edx
je 0x44a2b0
movsx eax, word [ebx + 0x2a]
mov ecx, dword [esp + 0x68]
push esi
push dword [esp + 0xcc]
sub ecx, eax
push 2
pop eax
sub ecx, eax
push ecx
push ebx
push eax
push 0
push 0x7b
mov ecx, ebp
call fcn.00457942
add esp, 0x1c
mov edx, esi
mov ecx, edi
call fcn.004296f7
cmp byte [esp + 0x17], 0
je 0x44a3c7
mov ebx, dword [esp + 0x34]
mov ecx, edi
push 0
push dword [esp + 0x84]
push ebx
push 5
pop edx
call fcn.004293f8
mov edx, dword [esp + 0x90]
add esp, 0xc
mov ecx, edi
call fcn.00429b75
mov ecx, dword [edi + 0x6c]
push 0
push 0
push ebx
mov dword [eax + 8], ecx
mov ecx, edi
push 0x75
pop edx
call fcn.004293f8
add esp, 0xc
jmp 0x44a3f0
push dword [esp + 0xcc]
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x58]
push 0
push eax
mov eax, dword [esp + 0x64]
mov ecx, ebp
push esi
push dword [esp + 0xd8]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push 0
push dword [esp + 0x80]
push dword [esp + 0x9c]
push dword [esp + 0x70]
push dword [esp + 0x84]
call fcn.0044a4eb
add esp, 0x2c
xor eax, eax
mov edx, ebx
mov ecx, ebp
push eax
push eax
push dword [esp + 0x6c]
push eax
call fcn.00448561
add esp, 0x10
cmp dword [esp + 0x54], 0
je 0x44a399
cmp dword [esp + 0x70], 0
jne 0x44a395
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x44a399
mov ecx, ebx
call fcn.00448321
test eax, eax
je 0x44a399
xor eax, eax
jmp 0x44a39c
xor eax, eax
inc eax
push eax
push dword [esp + 0x24]
mov edx, ebx
mov ecx, ebp
push 0
push dword [esp + 0x68]
push dword [esp + 0x74]
push dword [esp + 0x90]
push dword [esp + 0x64]
call fcn.0044b0a0
add esp, 0x1c
jmp 0x44a263
cmp dword [esp + 0x18], 0
je 0x44a3f0
mov edx, dword [esp + 0x80]
mov ecx, edi
call fcn.00429475
mov edx, dword [esp + 0x84]
mov ecx, edi
call fcn.00429b75
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
cmp byte [ebp + 0x12], 0
jne 0x44a409
cmp dword [ebp + 0x70], 0
jne 0x44a409
cmp dword [ebp + 0x68], 0
je 0x44a409
mov ecx, ebp
call fcn.0044945d
mov eax, dword [esp + 0x88]
test eax, eax
je 0x449a5e
push 0
push 1
push eax
push 0x51
pop edx
mov ecx, edi
call fcn.004293f8
add esp, 0xc
xor edx, edx
inc edx
mov ecx, edi
call fcn.0042a722
push 0
push str.rows_inserted
push ecx
xor edx, edx
mov ecx, edi
call fcn.0042a77e
add esp, 0xc
jmp 0x449a5e
mov ebx, dword [esp + 0xc0]
jmp 0x44a45a
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xcc]
jmp 0x449a6d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret