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

Disassembly:
sub esp, 0xbc
push ebx
push ebp
mov ebp, ecx
mov ebx, edx
xor edx, edx
mov dword [esp + 0x10], ebx
push esi
or ecx, 0xffffffff
mov dword [esp + 0x18], edx
push edi
mov edi, dword [ebp]
mov dword [esp + 0x44], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], edx
mov byte [esp + 0x13], dl
mov dword [esp + 0x3c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], edi
cmp dword [ebp + 0x24], edx
jne 0x43cfa9
cmp byte [edi + 0x51], dl
jne 0x43cfa9
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x94], edx
mov dword [esp + 0x14], esi
test esi, esi
je 0x43c131
test dword [esi + 8], 0x200
je 0x43c131
cmp dword [esi + 0x34], edx
jne 0x43c131
mov eax, dword [esi]
mov ecx, edi
mov dword [esi], edx
mov edx, esi
mov dword [esp + 0x3c], eax
call fcn.004427ea
and dword [esp + 0x14], 0
mov edx, ebx
mov ecx, ebp
call fcn.0043775d
mov ebx, eax
mov dword [esp + 0x5c], ebx
test ebx, ebx
je 0x43cfb2
mov edx, dword [ebx + 0x48]
mov ecx, edi
call fcn.004420f7
mov esi, eax
mov eax, dword [edi + 0x10]
mov ecx, esi
mov dword [esp + 0x50], esi
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, ebp
push 0
push dword [ebx]
push 0x12
pop edx
call fcn.00432298
add esp, 0xc
test eax, eax
jne 0x43c5ba
mov eax, dword [ebx + 0x24]
mov edx, ebx
shr eax, 5
mov ecx, ebp
and eax, 0xffffff01
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x48]
push eax
push 0
push 0x7b
call fcn.0044a1a1
add esp, 0xc
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0xc]
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x4c], eax
call fcn.0043475e
test eax, eax
jne 0x43c5ba
push dword [esp + 0x48]
mov edx, ebx
mov ecx, ebp
call fcn.0043779a
pop ecx
test eax, eax
jne 0x43c5ba
mov ecx, ebp
call fcn.004443db
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
je 0x43c5ba
cmp byte [ebp + 0x12], 0
jne 0x43c1f6
or dword [edi + 0x98], 0x20
cmp dword [esp + 0x14], 0
jne 0x43c208
cmp dword [esp + 0x60], 0
jne 0x43c208
xor edx, edx
jmp 0x43c20b
xor edx, edx
inc edx
push esi
mov ecx, ebp
call fcn.00436b7d
cmp dword [esp + 0xd8], 0
pop ecx
jne 0x43c23e
push esi
push dword [esp + 0xdc]
mov edx, ebx
mov ecx, ebp
push dword [esp + 0x1c]
call fcn.0043df79
add esp, 0xc
test eax, eax
jne 0x43cf4c
push ebx
mov edx, esi
mov ecx, ebp
call fcn.0043be6c
pop ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x38], 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 + 0x2c], edx
je 0x43c278
lea edx, [esi + 1]
inc eax
mov dword [esp + 0x2c], edx
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebx + 0x24]
lea eax, [edx + 1]
mov edx, dword [esp + 0xd4]
shr ecx, 7
not cl
mov dword [esp + 0x6c], eax
and ecx, 0xffffff01
mov dword [esp + 0x28], ecx
test edx, edx
je 0x43c3a9
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x43c2b8
mov eax, dword [edx]
or dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x43c2a9
xor esi, esi
test eax, eax
jle 0x43c3a9
movzx eax, word [ebx + 0x2a]
cwde
xor edx, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x80], eax
test eax, eax
jle 0x43c352
mov eax, dword [esp + 0xd4]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov ecx, dword [eax + esi*8]
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], eax
mov edx, dword [eax]
call fcn.0040727a
mov edx, dword [esp + 0x40]
test eax, eax
je 0x43c324
mov eax, dword [esp + 0x24]
inc edx
mov ecx, dword [esp + 0x34]
add eax, 0x10
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], eax
cmp edx, dword [esp + 0x80]
jl 0x43c2f6
jmp 0x43c352
mov eax, dword [esp + 0x88]
cmp esi, edx
mov ecx, dword [esp + 0x28]
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 + 0x28], cl
cmp edx, eax
jne 0x43c352
mov dword [esp + 0x54], esi
mov byte [esp + 0x28], cl
movzx eax, word [ebx + 0x2a]
cwde
cmp edx, eax
jl 0x43c394
mov eax, dword [esp + 0xd4]
mov eax, dword [eax]
mov eax, dword [eax + esi*8]
mov ecx, eax
mov dword [esp + 0x88], eax
call fcn.0042b410
test eax, eax
je 0x43c55a
cmp byte [esp + 0x8c], 0
jne 0x43c55a
mov dword [esp + 0x54], esi
mov byte [esp + 0x28], 0
mov ecx, dword [esp + 0xd4]
inc esi
movzx eax, word [ebx + 0x2a]
cmp esi, dword [ecx + 4]
jl 0x43c2c6
cmp dword [esp + 0x14], 0
je 0x43c57c
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 + 0x30], eax
call fcn.0041b8a1
mov eax, dword [esp + 0x30]
add esp, 0xc
and dword [esp + 0xa0], 0
mov ecx, ebp
mov edx, dword [esp + 0x14]
mov dword [esp + 0x94], eax
xor eax, eax
cmp byte [esp + 0x28], al
mov byte [esp + 0x90], 0xd
cmovne eax, dword [esp + 0x6c]
mov dword [esp + 0x98], eax
movsx eax, word [ebx + 0x2a]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x90]
push eax
call fcn.0044788b
pop ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
test eax, eax
jne 0x43c5ba
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x51], 0
jne 0x43c5ba
cmp dword [ebp + 0x24], 0
jne 0x43c5ba
mov edx, dword [esp + 0x24]
mov ecx, edi
call fcn.0041bb39
lea edx, [esi - 1]
mov ecx, edi
call fcn.0041c004
cmp dword [esp + 0x60], 0
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [esp + 0x34], esi
jne 0x43c48d
mov edx, dword [esp + 0x50]
mov ecx, ebp
push ebx
call fcn.0043bde7
pop ecx
test eax, eax
je 0x43c62d
mov edx, dword [ebp + 0x28]
mov ecx, ebp
mov byte [esp + 0x13], 1
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [ebp + 0x28], eax
call fcn.0042ed85
mov edi, eax
call fcn.0042ed85
mov ecx, dword [esp + 0x20]
mov ebx, eax
push 0
push esi
push edx
push 0x70
pop edx
call fcn.0041b8a1
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push 0
push 0
push dword [esp + 0x9c]
push 0xe
pop edx
call fcn.0041b8a1
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov esi, eax
push edi
push dword [esp + 0x38]
push dword [esp + 0x78]
push 0x5c
pop edx
call fcn.0041b8a1
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push 0
push ebx
push dword [esp + 0x38]
push 0x79
pop edx
call fcn.0041b8a1
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push ebx
push edi
push dword [esp + 0x38]
push 0x7a
pop edx
call fcn.0041b8a1
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, esi
call fcn.0041b91e
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.0041c004
mov ecx, dword [ecx + 0x6c]
mov edx, edi
mov dword [eax + 8], ecx
mov ecx, ebp
call fcn.0042eda4
mov edx, ebx
call fcn.0042eda4
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x34]
jmp 0x43c629
push dword [esp + 0x88]
mov edi, dword [esp + 0x1c]
push 0
push edi
push str.table__S_has_no_column_named__s
push ebp
call fcn.004071a7
add esp, 0x14
mov byte [ebp + 0x11], 1
jmp 0x43c5be
or dword [esp + 0x30], 0xffffffff
lea edi, [esp + 0xa8]
push 8
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa8], ebp
test eax, eax
je 0x43c623
mov esi, dword [eax]
lea ecx, [esp + 0xa8]
mov edx, eax
mov dword [esp + 0x34], esi
call fcn.00429842
test eax, eax
je 0x43c629
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x68]
mov edx, edi
mov ecx, ebp
call fcn.0043672e
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x43c5e7
mov edx, eax
mov ecx, ebp
call fcn.0042b03d
mov edx, esi
mov ecx, ebp
call fcn.0044bd4e
mov edx, ebx
mov ecx, ebp
call fcn.004427ea
mov edx, dword [esp + 0xd4]
mov ecx, ebp
call fcn.0043649f
mov eax, dword [esp + 0x58]
test eax, eax
je 0x43c618
mov edx, eax
mov ecx, ebp
call fcn.00404c57
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
xor esi, esi
mov dword [esp + 0x34], esi
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0xd4]
test eax, eax
jne 0x43c644
test esi, esi
jle 0x43c644
movsx ecx, word [ebx + 0x28]
mov dword [esp + 0x54], ecx
movsx ecx, word [ebx + 0x2a]
test ecx, ecx
jle 0x43c66f
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 + 0x1c], eax
sub esi, 1
jne 0x43c654
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x34]
test eax, eax
jne 0x43c69e
test edx, edx
je 0x43c6ba
sub ecx, dword [esp + 0x1c]
cmp edx, ecx
je 0x43c6ba
mov edi, dword [esp + 0x18]
push edx
push ecx
push eax
push edi
push str.table__S_has__d_columns_but__d_values_were_supplied
push ebp
call fcn.004071a7
add esp, 0x18
jmp 0x43c5be
cmp edx, dword [eax + 4]
je 0x43c6ba
push dword [eax + 4]
push edx
push str._d_values_for__d_columns
push ebp
call fcn.004071a7
add esp, 0x10
jmp 0x43c5ba
mov esi, dword [esp + 0x68]
xor ecx, ecx
mov eax, dword [esi + 0x20]
and eax, 0x80
or eax, ecx
je 0x43c6f5
cmp byte [ebp + 0x12], cl
jne 0x43c6f5
cmp dword [ebp + 0x70], ecx
jne 0x43c6f5
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 + 0x90], eax
call fcn.0041b8a1
add esp, 0xc
xor ecx, ecx
cmp dword [esp + 0x4c], 0
jne 0x43c783
lea eax, [esp + 0x74]
mov edx, ebx
push eax
lea eax, [esp + 0x48]
push eax
push ecx
push 0xffffffffffffffff
push ecx
push 0x62
mov ecx, ebp
call fcn.0043dd8f
mov dword [esp + 0x3c], eax
mov ecx, esi
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.00404e37
add esp, 0x20
mov dword [esp + 0x58], eax
test eax, eax
je 0x43c5ba
mov esi, dword [ebx + 8]
xor edx, edx
cmp dword [esp + 0x24], edx
jle 0x43c775
mov edi, dword [esp + 0x24]
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 0x43c74e
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x20]
jmp 0x43c778
mov eax, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x58]
inc eax
mov dword [ebp + 0x2c], eax
mov dword [ecx + edx*4], eax
mov esi, dword [esp + 0xdc]
test esi, esi
je 0x43c7e7
cmp dword [ebx + 0x38], 0
je 0x43c7ad
push dword [ebx]
push str.UPSERT_not_implemented_for_virtual_table___s_
push ebp
call fcn.004071a7
add esp, 0xc
mov edi, dword [esp + 0x18]
jmp 0x43c5c5
mov edx, dword [esi]
mov ecx, ebp
call fcn.00435508
test eax, eax
jne 0x43c7a4
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x34], ecx
cmp dword [esi], 0
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
je 0x43c7e7
push esi
mov ecx, ebp
call fcn.0044be0b
pop ecx
cmp byte [esp + 0x13], 0
je 0x43c813
push 0
push 0
push dword [esp + 0x38]
mov ecx, edi
push 0x24
pop edx
call fcn.0041b8a1
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x84], eax
jmp 0x43c83f
cmp dword [esp + 0x14], 0
je 0x43c842
push 0
push 0
push dword [esp + 0x9c]
mov ecx, edi
push 0xe
pop edx
call fcn.0041b8a1
mov ecx, eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
add esp, 0xc
dec dword [ebp + 0x38]
test byte [esp + 0x48], 1
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x40], eax
je 0x43caa7
movsx edx, word [ebx + 0x2a]
mov ecx, ebp
inc edx
call fcn.0042edbd
mov esi, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], esi
test eax, eax
jns 0x43c87a
or eax, 0xffffffff
mov ecx, esi
push 0x46
jmp 0x43c8eb
cmp byte [esp + 0x13], 0
push esi
je 0x43c896
push eax
push dword [esp + 0x38]
mov ecx, edi
push 0x5a
pop edx
call fcn.0041b8a1
add esp, 0xc
jmp 0x43c8a9
imul edx, eax, 0x18
mov ecx, ebp
mov eax, dword [esp + 0x40]
mov edx, dword [edx + eax + 4]
call fcn.0042d8e1
pop ecx
push 0
push 0
push esi
push 0x33
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
mov ecx, edi
mov esi, eax
push 0
push dword [esp + 0x20]
push 0xffffffffffffffff
push 0x46
pop edx
call fcn.0041b8a1
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.0041c004
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x1c]
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.0041b8a1
movzx eax, word [ebx + 0x2a]
xor edx, edx
and dword [esp + 0x5c], edx
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x48], edx
cmp word [esp + 0x50], ax
jge 0x43ca4e
and dword [esp + 0x24], edx
lea ecx, [esi + 1]
or eax, 0xffffffff
mov dword [esp + 0x28], ecx
sub eax, esi
mov dword [esp + 0x80], eax
mov esi, dword [esp + 0xd4]
test esi, esi
je 0x43c972
xor edx, edx
mov dword [esp + 0x48], edx
cmp dword [esi + 4], edx
jle 0x43c972
mov ecx, dword [esi]
mov edi, dword [esp + 0x28]
add ecx, 4
mov ebx, dword [esp + 0x80]
lea eax, [ebx + edi]
cmp dword [ecx], eax
je 0x43c962
inc edx
add ecx, 8
cmp edx, dword [esi + 4]
jl 0x43c952
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edx
mov al, byte [esp + 0x13]
test al, al
jne 0x43c981
cmp dword [esp + 0x3c], 0
je 0x43c98a
test esi, esi
je 0x43c9a0
cmp edx, dword [esi + 4]
jl 0x43c9a0
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, ebp
mov edx, dword [edx + eax + 4]
call fcn.0042d8e1
pop ecx
jmp 0x43ca0c
push ecx
test al, al
je 0x43c9b9
push edx
push dword [esp + 0x38]
mov ecx, edi
push 0x5a
pop edx
call fcn.0041b8a1
add esp, 0xc
jmp 0x43ca0c
mov esi, dword [ebp + 8]
mov ecx, ebp
imul eax, edx, 0x18
mov edx, dword [esp + 0x40]
mov ebx, dword [eax + edx + 4]
mov edx, ebx
call fcn.0042d8e1
inc dword [ebp + 0x2c]
mov edi, dword [ebp + 0x2c]
pop ecx
push 0
push edi
push dword [esp + 0x30]
mov ecx, esi
push 0x4e
pop edx
call fcn.0041b8a1
add esp, 0xc
mov ecx, ebx
call fcn.00429a2b
mov ebx, dword [esp + 0x5c]
mov cl, byte [eax]
and dword [eax + 4], 0xffffefff
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x20]
mov byte [eax + 0x22], cl
mov byte [eax], 0xab
mov ecx, dword [esp + 0x48]
add dword [esp + 0x24], 0x10
mov esi, dword [esp + 0x28]
inc esi
cmp dword [esp + 0xd4], 0
lea edx, [ecx + 1]
mov dword [esp + 0x28], esi
cmovne edx, ecx
mov ecx, dword [esp + 0x80]
add ecx, esi
mov dword [esp + 0x48], edx
movzx esi, word [ebx + 0x2a]
movsx eax, si
cmp ecx, eax
mov ecx, dword [esp + 0x28]
jl 0x43c92c
mov ecx, esi
cmp dword [esp + 0x4c], 0
mov esi, dword [esp + 0x1c]
movzx eax, cx
jne 0x43ca6e
lea eax, [esi + 1]
mov edx, ebx
push eax
mov ecx, edi
call fcn.0043bd3c
movzx eax, word [ebx + 0x2a]
pop ecx
push dword [esp + 0x40]
mov edx, dword [esp + 0x64]
mov ecx, esi
push dword [esp + 0xdc]
cwde
sub ecx, eax
dec ecx
push ecx
push ebx
push 1
push 0
push 0x7b
mov ecx, ebp
call fcn.0044a75f
movsx eax, word [ebx + 0x2a]
add esp, 0x1c
inc eax
mov edx, esi
mov ecx, ebp
push eax
call fcn.0042edf3
add esp, 4
cmp dword [esp + 0x4c], 0
jne 0x43cdc4
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x43cad1
push 0
push dword [esp + 0x68]
mov ecx, edi
push 0
push 0x49
pop edx
call fcn.0041b8a1
mov ecx, dword [ebx + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x54]
test eax, eax
js 0x43cbcf
cmp byte [esp + 0x13], 0
je 0x43cafd
mov esi, dword [esp + 0x2c]
push esi
push eax
push dword [esp + 0x38]
push 0x5a
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
jmp 0x43cb58
cmp dword [esp + 0x14], 0
je 0x43cb14
mov esi, dword [esp + 0x2c]
add eax, dword [esp + 0x70]
push 0
push esi
push eax
push 0x4e
jmp 0x43caf0
mov edx, dword [esp + 0x3c]
imul eax, eax, 0x18
mov edx, dword [eax + edx + 4]
cmp byte [edx], 0x75
jne 0x43cb4b
test ecx, ecx
jne 0x43cb4b
push dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x30]
push dword [esp + 0x4c]
push 0x79
pop edx
call fcn.0041b8a1
add esp, 0xc
mov dword [esp + 0x1c], 1
jmp 0x43cbc9
mov esi, dword [esp + 0x2c]
mov ecx, ebp
push esi
call fcn.0042d8e1
pop ecx
xor eax, eax
mov ecx, edi
push eax
cmp dword [ebx + 0x38], eax
jne 0x43cb9f
push eax
push esi
push 0x33
pop edx
call fcn.0041b8a1
add esp, 0xc
mov ecx, edi
mov esi, eax
push dword [esp + 0x38]
push dword [esp + 0x30]
push dword [esp + 0x4c]
push 0x79
pop edx
call fcn.0041b8a1
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.0041c004
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x2c]
mov dword [eax + 8], ecx
jmp 0x43cbb2
mov eax, dword [edi + 0x6c]
add eax, 2
push eax
push esi
push 0x32
pop edx
call fcn.0041b8a1
add esp, 0xc
push 0
push 0
push esi
push 0xf
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
and dword [esp + 0x1c], 0
mov esi, dword [esp + 0x2c]
jmp 0x43cc1b
test ecx, ecx
jne 0x43cc00
cmp byte [esp + 0x8c], cl
jne 0x43cc00
push dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ecx, edi
push esi
push dword [esp + 0x4c]
push 0x79
pop edx
call fcn.0041b8a1
add esp, 0xc
mov dword [esp + 0x1c], 1
jmp 0x43cc1b
mov esi, dword [esp + 0x2c]
mov ecx, edi
push 0
push esi
push 0
push 0x49
pop edx
call fcn.0041b8a1
add esp, 0xc
and dword [esp + 0x1c], 0
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x43cc37
mov ecx, dword [ebp + 8]
mov edx, 0x97
push 0
push esi
push eax
call fcn.0041b8a1
add esp, 0xc
and dword [esp + 0x38], 0
xor eax, eax
xor esi, esi
cmp ax, word [ebx + 0x2a]
jge 0x43cd61
xor ecx, ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x6c]
movsx eax, word [ebx + 0x28]
add edx, esi
mov dword [esp + 0x50], edx
cmp esi, eax
jne 0x43cc79
push 0
push 0
push edx
push 0x4a
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
jmp 0x43cd49
mov eax, dword [esp + 0xd4]
test eax, eax
jne 0x43ccaf
mov eax, dword [ebx + 4]
mov dl, byte [eax + ecx + 0xf]
mov eax, dword [esp + 0x38]
and dl, 2
je 0x43cc99
or ecx, 0xffffffff
jmp 0x43cc9d
mov ecx, esi
sub ecx, eax
inc eax
test dl, dl
mov edx, dword [esp + 0x50]
cmove eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
jmp 0x43ccd3
xor ecx, ecx
cmp dword [eax + 4], ecx
jle 0x43ccde
mov eax, dword [eax]
mov ebx, dword [esp + 0xd4]
add eax, 4
cmp dword [eax], esi
je 0x43cccf
inc ecx
add eax, 8
cmp ecx, dword [ebx + 4]
jl 0x43ccc2
mov ebx, dword [esp + 0x5c]
test ecx, ecx
js 0x43cd35
mov eax, dword [esp + 0xd4]
cmp dword [esp + 0x34], 0
je 0x43cd35
test eax, eax
je 0x43ccee
cmp ecx, dword [eax + 4]
jge 0x43cd35
cmp byte [esp + 0x13], 0
je 0x43cd02
push edx
push ecx
push dword [esp + 0x38]
push 0x5a
jmp 0x43cc69
cmp dword [esp + 0x14], 0
je 0x43cd20
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x6c]
je 0x43cd49
push 0
push edx
add eax, ecx
push eax
push 0x4f
jmp 0x43cc69
mov eax, dword [esp + 0x3c]
push edx
imul edx, ecx, 0x18
mov ecx, ebp
mov edx, dword [edx + eax + 4]
call fcn.0042d8e1
jmp 0x43cd48
mov eax, dword [esp + 0x4c]
mov ecx, ebp
push edx
mov edx, dword [ebx + 4]
mov edx, dword [edx + eax + 4]
call fcn.0042d961
pop ecx
mov ecx, dword [esp + 0x4c]
inc esi
movsx eax, word [ebx + 0x2a]
add ecx, 0x10
mov dword [esp + 0x4c], ecx
cmp esi, eax
jl 0x43cc50
cmp dword [ebx + 0x38], 0
mov edx, ebx
je 0x43ce6c
mov ecx, dword [esp + 0x68]
call fcn.0044c9ae
mov ecx, ebp
mov esi, eax
call fcn.0044d638
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.0041b9de
mov eax, dword [esp + 0xec]
add esp, 0x14
cmp eax, 0xb
movzx edx, ax
mov ecx, edi
cmove edx, esi
call fcn.0041bd6f
cmp dword [ebp + 0x6c], 0
mov eax, ebp
cmovne eax, dword [ebp + 0x6c]
mov byte [eax + 0x15], 1
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x43cde5
push 0
push 1
push eax
push 0x53
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
mov edx, dword [esp + 0x60]
test edx, edx
je 0x43ce15
movsx eax, word [ebx + 0x2a]
mov ecx, dword [esp + 0x6c]
push esi
push dword [esp + 0xdc]
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.0044a75f
add esp, 0x1c
mov edx, esi
mov ecx, edi
call fcn.0041bba0
cmp byte [esp + 0x13], 0
je 0x43cf29
mov ebx, dword [esp + 0x30]
mov ecx, edi
push 0
push dword [esp + 0x7c]
push ebx
push 5
pop edx
call fcn.0041b8a1
mov edx, dword [esp + 0x88]
add esp, 0xc
mov ecx, edi
call fcn.0041c004
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.0041b8a1
add esp, 0xc
jmp 0x43cf4c
push dword [esp + 0xdc]
mov esi, dword [esp + 0x44]
lea eax, [esp + 0x54]
push 0
push eax
mov eax, dword [esp + 0x60]
mov ecx, ebp
push esi
push dword [esp + 0xe8]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push 0
push dword [esp + 0x80]
push dword [esp + 0x94]
push dword [esp + 0x68]
push dword [esp + 0x80]
call fcn.0043d03c
add esp, 0x2c
xor eax, eax
mov edx, ebx
mov ecx, ebp
push eax
push eax
push dword [esp + 0x6c]
push eax
call fcn.0043b023
add esp, 0x10
cmp dword [esp + 0x50], 0
je 0x43cefb
cmp dword [esp + 0x60], 0
jne 0x43cef7
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x43cefb
mov ecx, ebx
call fcn.0043ade3
test eax, eax
je 0x43cefb
xor eax, eax
jmp 0x43cefe
xor eax, eax
inc eax
push eax
push dword [esp + 0x20]
mov edx, ebx
mov ecx, ebp
push 0
push dword [esp + 0x64]
push dword [esp + 0x74]
push dword [esp + 0x88]
push dword [esp + 0x5c]
call fcn.0043dc27
add esp, 0x1c
jmp 0x43cdc8
cmp dword [esp + 0x14], 0
je 0x43cf4c
mov edx, dword [esp + 0x78]
mov ecx, edi
call fcn.0041b91e
mov edx, dword [esp + 0x7c]
mov ecx, edi
call fcn.0041c004
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
cmp byte [ebp + 0x12], 0
jne 0x43cf65
cmp dword [ebp + 0x70], 0
jne 0x43cf65
cmp dword [ebp + 0x68], 0
je 0x43cf65
mov ecx, ebp
call fcn.0043bfd3
mov eax, dword [esp + 0x84]
test eax, eax
je 0x43c5ba
push 0
push 1
push eax
push 0x51
pop edx
mov ecx, edi
call fcn.0041b8a1
add esp, 0xc
xor edx, edx
inc edx
mov ecx, edi
call fcn.0041cbb2
push 0
push str.rows_inserted
push ecx
xor edx, edx
mov ecx, edi
call fcn.0041cc0e
add esp, 0xc
jmp 0x43c5ba
mov ebx, dword [esp + 0xd0]
jmp 0x43cfb6
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xdc]
jmp 0x43c5c9