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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
mov eax, dword [0x5932e0]
xor eax, esp
mov dword [esp + 0xb4], eax
push esi
mov esi, ecx
mov dword [esp + 0x70], edx
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
push edi
mov edi, dword [ebp + 0xc]
cmp dword [esi + 0x24], 0
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov byte [esp + 0xb], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x3c], eax
jne 0x4a83e1
cmp byte [eax + 0x49], 0
jne 0x4a83e1
mov dword [esp + 0x1c], 0
test ecx, ecx
je 0x4a71bb
test dword [ecx + 8], 0x200
je 0x4a71bb
cmp dword [ecx + 0x30], 0
jne 0x4a71bb
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, ecx
mov dword [ecx], 0
mov ecx, eax
push 1
call fcn.004afbd0
add esp, 4
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.0049f570
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
je 0x4a83dd
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x3c]
call fcn.004af190
mov ecx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
add ecx, ecx
mov edx, 0x12
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, esi
push eax
push 0
push dword [edi]
call fcn.00497ef0
add esp, 0xc
test eax, eax
jne 0x4a83dd
mov eax, dword [edi + 0x24]
xor edx, edx
shr eax, 5
and eax, 0xffffff01
mov dword [esp + 0x24], 0
mov dword [esp + 0x6c], eax
mov eax, dword [esi]
test dword [eax + 0x1c], 0x40000
je 0x4a723d
mov edx, edi
mov ecx, esi
call fcn.004b9c90
mov edx, eax
mov ecx, edx
test edx, edx
je 0x4a7258
cmp byte [ecx + 8], 0x6c
jne 0x4a7251
movzx eax, byte [ecx + 9]
or dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x4a7243
xor eax, eax
mov ecx, esi
cmp dword [esp + 0x24], eax
cmovne eax, edx
mov edx, edi
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x50], eax
call fcn.0049b340
test eax, eax
jne 0x4a83dd
push dword [esp + 0x24]
mov edx, edi
mov ecx, esi
call fcn.0049f600
add esp, 4
test eax, eax
jne 0x4a83dd
mov ecx, esi
call fcn.004b28a0
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a83dd
cmp byte [esi + 0x12], 0
jne 0x4a72b5
or dword [eax + 0x94], 0x10
cmp dword [esp + 0x34], 0
jne 0x4a72c7
cmp dword [esp + 0x64], 0
jne 0x4a72c7
xor edx, edx
jmp 0x4a72cc
mov edx, 1
push dword [esp + 0x20]
mov ecx, esi
call fcn.0049e080
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4a7300
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
push dword [ebp + 0x10]
push dword [esp + 0x3c]
call fcn.004aa080
add esp, 0xc
test eax, eax
jne 0x4a8368
mov edx, dword [esp + 0x20]
mov ecx, esi
push edi
call fcn.004a6ec0
mov ecx, dword [esi + 0x2c]
add esp, 4
mov dword [esp + 0x40], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [esp + 0x60], eax
movsx eax, word [edi + 0x2a]
inc eax
mov dword [esp + 0x2c], edx
add eax, ecx
mov dword [esi + 0x2c], eax
cmp dword [edi + 0x38], 0
je 0x4a733e
lea edx, [ecx + 2]
inc eax
mov dword [esp + 0x2c], edx
mov dword [esi + 0x2c], eax
lea eax, [edx + 1]
mov edx, dword [edi + 0x24]
shr edx, 7
not dl
mov dword [esp + 0x7c], eax
and edx, 0xffffff01
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4a748a
mov eax, dword [edx + 4]
xor ecx, ecx
test eax, eax
jle 0x4a7382
nop dword [eax]
mov eax, dword [edx]
mov dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x4a7370
xor edi, edi
mov dword [esp + 0x28], edi
test eax, eax
jle 0x4a748a
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 0x2a]
mov dword [esp + 0x54], eax
nop dword [eax]
cwde
xor esi, esi
test eax, eax
jle 0x4a740e
mov eax, dword [edx]
lea eax, [eax + edi*8]
mov edi, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov edx, dword [edi]
mov ecx, dword [eax]
call fcn.0045c5e0
test eax, eax
je 0x4a73d9
mov ecx, dword [esp + 0x54]
inc esi
movsx eax, cx
add edi, 0x10
cmp esi, eax
mov eax, dword [esp + 0x48]
jl 0x4a73b3
mov edi, dword [esp + 0x28]
jmp 0x4a740a
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
cmp edi, esi
mov dword [eax + 4], esi
movzx eax, dl
cmove ecx, eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18], cl
movsx eax, word [eax + 0x28]
cmp esi, eax
jne 0x4a740a
mov dword [esp + 0x58], edi
mov byte [esp + 0x18], cl
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 0x2a]
cwde
cmp esi, eax
jl 0x4a746c
mov eax, dword [edx]
mov edx, str._ROWID_
mov esi, dword [eax + edi*8]
mov ecx, esi
call fcn.0045c5e0
test eax, eax
je 0x4a7454
mov edx, str.ROWID
mov ecx, esi
call fcn.0045c5e0
test eax, eax
je 0x4a7454
mov edx, 0x59950c
mov ecx, esi
call fcn.0045c5e0
test eax, eax
jne 0x4a75d3
cmp byte [esp + 0x6c], 0
jne 0x4a75d3
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], edi
mov byte [esp + 0x18], 0
mov ecx, dword [esp + 0x10]
inc edi
mov dword [esp + 0x28], edi
movzx eax, word [ecx + 0x2a]
mov dword [esp + 0x54], eax
cmp edi, dword [edx + 4]
jl 0x4a73a0
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x34], 0
je 0x4a777a
mov ecx, dword [esp + 0xc]
mov edx, 0xf
inc dword [esi + 0x2c]
mov edi, dword [esi + 0x2c]
mov eax, dword [ecx + 0x88]
mov dword [esp + 0x54], eax
inc eax
push eax
push 0
push edi
call fcn.00478530
mov edx, dword [esp + 0x40]
xor eax, eax
add esp, 0xc
mov byte [esp + 0x90], 0xd
cmp byte [esp + 0x18], al
mov ecx, esi
mov dword [esp + 0x94], edi
cmovne eax, dword [esp + 0x7c]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], 0
movsx eax, word [eax + 0x2a]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x90]
push eax
call fcn.004b71f0
mov ecx, dword [esp + 0x9c]
add esp, 4
mov dword [esp + 0x78], ecx
test eax, eax
jne 0x4a83dd
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x4a83dd
cmp dword [esi + 0x24], 0
jne 0x4a83dd
push edi
mov edi, dword [esp + 0x10]
mov edx, 0x40
mov ecx, edi
call fcn.00478610
mov eax, dword [edi + 0xc]
add esp, 4
mov edx, dword [esp + 0x54]
mov ecx, edi
mov byte [eax + 0x13], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x1c], 0
call fcn.00478e60
cmp dword [esp + 0x64], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jne 0x4a76a3
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4a75a5
cmp dword [esi + 0x78], eax
jne 0x4a759a
mov eax, dword [esi]
test byte [eax + 0x44], 8
jne 0x4a759a
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.00478320
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x88]
mov dword [esp + 0x18], eax
cmp dword [ecx + 0x38], 0
je 0x4a75f5
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x4a75f7
mov eax, dword [esi]
cmp dword [edx], eax
je 0x4a75cd
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x4a75c2
mov eax, dword [esp + 0x18]
jmp 0x4a75f7
push esi
mov esi, dword [esp + 0x3c]
push 0
push dword [esp + 0x7c]
push str.table__S_has_no_column_named__s
push esi
call fcn.0045c440
add esp, 0x14
mov byte [esi + 0x11], 1
jmp 0x4a83dd
xor edx, edx
mov edi, 1
cmp eax, edi
jle 0x4a768f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov cl, byte [eax + 0x49]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x4f], cl
dec eax
test edi, edi
cmovns eax, edi
test cl, cl
je 0x4a7626
mov eax, 0x59f36c
jmp 0x4a7633
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*4]
mov cl, byte [eax]
cmp cl, 0x6a
jne 0x4a7664
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0xc], ecx
jne 0x4a766e
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x10]
cmp ecx, dword [eax + 0x1c]
je 0x4a76a3
mov eax, dword [eax + 8]
test eax, eax
je 0x4a766e
cmp ecx, dword [eax + 0x2c]
je 0x4a76a3
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4a7656
jmp 0x4a766e
cmp cl, 0x9e
jne 0x4a766e
cmp dword [eax + 0x10], edx
je 0x4a76a3
mov eax, dword [esp + 0x18]
inc edi
mov cl, byte [esp + 0x4f]
cmp edi, eax
jl 0x4a7615
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x4a77c8
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x4a77cc
mov edx, dword [esi + 0x28]
mov ecx, esi
mov byte [esp + 0xb], 1
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
call fcn.004949d0
mov edi, eax
call fcn.004949d0
push dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
push edx
mov edx, 0x6e
mov dword [esp + 0x28], eax
call fcn.00478680
mov eax, dword [esp + 0x9c]
mov edx, 0x10
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x28], eax
call fcn.00478610
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, 0x65
mov esi, eax
push edi
push dword [esp + 0x2c]
push dword [esp + 0x80]
call fcn.00478530
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, 0x75
push dword [esp + 0x20]
push dword [esp + 0x34]
call fcn.00478680
push dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, 0x76
push edi
push dword [esp + 0x40]
call fcn.00478530
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov edx, esi
call fcn.004786f0
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.00478e60
mov esi, dword [esp + 0x38]
mov edx, edi
mov ecx, esi
call fcn.004949f0
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.004949f0
mov edi, dword [esp + 0x28]
jmp 0x4a77c8
mov eax, dword [esp + 0x44]
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x90], esi
mov dword [esp + 0x30], 0xffffffff
test eax, eax
je 0x4a77c2
mov edi, dword [eax]
lea ecx, [esp + 0x90]
mov edx, eax
mov dword [esp + 0x28], edi
call fcn.0048cd60
test eax, eax
jne 0x4a83dd
jmp 0x4a77c8
xor edi, edi
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x14], 0
jne 0x4a77df
test edi, edi
jle 0x4a77df
movsx eax, word [ecx + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
movsx edi, word [eax + 0x2a]
xor eax, eax
cmp edi, 2
jl 0x4a783f
mov eax, dword [esp + 0x10]
lea edx, [edi - 2]
shr edx, 1
mov ecx, dword [eax + 4]
add ecx, 0x1f
inc edx
lea eax, [edx + edx]
mov dword [esp + 0x48], eax
movzx eax, byte [ecx - 0x10]
lea ecx, [ecx + 0x20]
shr eax, 1
and eax, 1
add dword [esp + 0x20], eax
movzx eax, byte [ecx - 0x20]
shr eax, 1
and eax, 1
add dword [esp + 0x18], eax
sub edx, 1
jne 0x4a7811
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
cmp eax, edi
jge 0x4a7865
shl eax, 4
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
mov eax, dword [eax + 4]
movzx eax, byte [esi + eax + 0xf]
mov esi, dword [esp + 0x38]
shr eax, 1
and eax, 1
jmp 0x4a7867
xor eax, eax
cmp dword [esp + 0x14], 0
jne 0x4a78a1
cmp dword [esp + 0x28], 0
je 0x4a78c5
sub edi, edx
sub edi, ecx
mov ecx, dword [esp + 0x28]
sub edi, eax
cmp ecx, edi
je 0x4a78c5
push ecx
push edi
push 0
push dword [esp + 0x80]
push str.table__S_has__d_columns_but__d_values_were_supplied
push esi
call fcn.0045c440
add esp, 0x18
jmp 0x4a83dd
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
cmp ecx, eax
je 0x4a78c5
push eax
push ecx
push str._d_values_for__d_columns
push esi
call fcn.0045c440
add esp, 0x10
jmp 0x4a83e1
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
je 0x4a78f0
inc dword [esi + 0x2c]
mov edx, 0x43
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0xc]
push eax
push 0
mov dword [esp + 0x90], eax
call fcn.00478680
add esp, 8
cmp dword [esp + 0x50], 0
jne 0x4a7970
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x60]
mov ecx, esi
push eax
push 0
push 0xffffffffffffffff
push 0
push 0x6b
call fcn.004a9d40
mov ecx, dword [esp + 0x54]
mov edi, eax
push 0
lea eax, [edi*4 + 4]
push eax
call fcn.004595f0
add esp, 0x20
mov dword [esp + 0x68], eax
test eax, eax
je 0x4a83dd
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edx, dword [eax + 8]
test edi, edi
jle 0x4a7970
nop dword [eax + eax]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov esi, dword [esp + 0x68]
mov dword [esi + ecx*4], eax
inc ecx
mov esi, dword [esp + 0x38]
movzx eax, word [edx + 0x34]
add dword [esi + 0x2c], eax
mov edx, dword [edx + 0x14]
cmp ecx, edi
jl 0x4a7950
cmp byte [esp + 0xb], 0
mov edi, dword [esp + 0xc]
je 0x4a799a
push dword [esp + 0x30]
mov edx, 0x25
mov ecx, edi
call fcn.00478610
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x88]
jmp 0x4a79b8
cmp dword [esp + 0x34], 0
je 0x4a79c2
push dword [esp + 0x1c]
mov edx, 0x10
mov ecx, edi
call fcn.00478610
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
add esp, 4
mov ecx, edi
call fcn.00478ac0
test byte [esp + 0x24], 1
mov dword [esp + 0x20], eax
je 0x4a7cd9
mov eax, dword [esp + 0x10]
mov ecx, esi
movsx edx, word [eax + 0x2a]
inc edx
call fcn.00494a40
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], eax
push eax
test ecx, ecx
jns 0x4a7a08
push 0xffffffffffffffff
mov edx, 0x43
mov ecx, edi
call fcn.00478680
add esp, 8
jmp 0x4a7a81
cmp byte [esp + 0xf], 0
je 0x4a7a25
push ecx
push dword [esp + 0x38]
mov edx, 0x63
mov ecx, edi
call fcn.00478530
add esp, 0xc
jmp 0x4a7a3a
mov eax, dword [esp + 0x48]
lea edx, [ecx + ecx*2]
mov ecx, esi
mov edx, dword [eax + edx*8 + 4]
call fcn.00493560
add esp, 4
push dword [esp + 0x24]
mov edx, 0x33
mov ecx, edi
call fcn.00478610
add esp, 4
mov edx, 0x43
mov ecx, edi
mov esi, eax
push dword [esp + 0x24]
push 0xffffffffffffffff
call fcn.00478680
mov edx, esi
mov ecx, edi
call fcn.00478e60
push dword [esp + 0x2c]
mov edx, 0x11
mov ecx, edi
call fcn.00478610
mov esi, dword [esp + 0x44]
add esp, 0xc
mov eax, dword [esp + 0x10]
xor edx, edx
xor edi, edi
movzx eax, word [eax + 0x2a]
mov ecx, eax
cmp dx, ax
jge 0x4a7c5b
mov edx, dword [esp + 0x24]
xor ecx, ecx
inc edx
mov dword [esp + 0x1c], ecx
or eax, 0xffffffff
mov dword [esp + 0x18], edx
sub eax, dword [esp + 0x24]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4a7aec
xor edi, edi
cmp dword [eax + 4], edi
jle 0x4a7aec
mov ecx, dword [eax]
mov esi, dword [esp + 0x54]
add ecx, 4
nop word [eax + eax]
lea eax, [esi + edx]
cmp dword [ecx], eax
mov eax, dword [esp + 0x14]
je 0x4a7ae4
inc edi
add ecx, 8
cmp edi, dword [eax + 4]
jl 0x4a7ad0
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
cmp byte [esp + 0xb], 0
jne 0x4a7afa
cmp dword [esp + 0x44], 0
je 0x4a7b03
test eax, eax
je 0x4a7b68
cmp edi, dword [eax + 4]
jl 0x4a7b68
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x4a7b30
cmp byte [eax], 0x98
jne 0x4a7b30
mov ecx, dword [esi + 8]
push edx
push dword [eax + 0x1c]
mov edx, 0x4b
call fcn.00478680
add esp, 8
jmp 0x4a7c15
push edx
mov edx, eax
mov ecx, esi
call fcn.00492210
mov edx, dword [esp + 0x1c]
add esp, 4
cmp eax, edx
je 0x4a7c19
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4a7c19
push edx
push eax
mov edx, 0x4c
call fcn.00478680
add esp, 8
jmp 0x4a7c15
cmp byte [esp + 0xb], 0
je 0x4a7b8b
mov ecx, dword [esp + 0xc]
push edx
push edi
push dword [esp + 0x38]
mov edx, 0x63
call fcn.00478530
add esp, 0xc
jmp 0x4a7c15
mov ecx, dword [esp + 0x44]
lea eax, [edi + edi*2]
mov eax, dword [ecx + eax*8 + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x70], eax
mov dword [esp + 0x48], ecx
test eax, eax
je 0x4a7bb5
cmp byte [eax], 0x98
jne 0x4a7bb5
push edx
push dword [eax + 0x1c]
mov edx, 0x4b
jmp 0x4a7bda
push edx
mov edx, eax
mov ecx, esi
call fcn.00492210
mov edx, eax
add esp, 4
mov eax, dword [esp + 0x18]
cmp edx, eax
je 0x4a7be6
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4a7be6
push eax
push edx
mov edx, 0x4c
call fcn.00478680
mov eax, dword [esp + 0x20]
add esp, 8
inc dword [esi + 0x2c]
mov edx, 0x4b
mov esi, dword [esi + 0x2c]
mov ecx, dword [esp + 0x48]
push esi
push eax
call fcn.00478680
mov ecx, dword [esp + 0x78]
add esp, 8
mov al, byte [ecx]
and dword [ecx + 4], 0xffffefff
mov byte [ecx + 0x26], al
mov byte [ecx], 0x98
mov dword [ecx + 0x1c], esi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc edx
add dword [esp + 0x1c], 0x10
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x54]
movzx esi, word [eax + 0x2a]
lea eax, [edi + 1]
cmovne eax, edi
mov dword [esp + 0x18], edx
mov edi, eax
add ecx, edx
movsx eax, si
mov esi, dword [esp + 0x38]
cmp ecx, eax
mov ecx, dword [esp + 0x1c]
jl 0x4a7ab2
mov edi, dword [esp + 0x10]
movzx ecx, word [edi + 0x2a]
jmp 0x4a7c5f
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x50], 0
movzx eax, cx
jne 0x4a7c81
mov eax, dword [esp + 0x24]
mov edx, edi
mov ecx, dword [esp + 0xc]
inc eax
push eax
call fcn.004a6dc0
movzx eax, word [edi + 0x2a]
add esp, 4
push dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push dword [ebp + 0x10]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
cwde
sub ecx, eax
dec ecx
push ecx
push edi
push 1
push 0
push 0x6c
mov ecx, esi
call fcn.004bb460
movsx edi, word [edi + 0x2a]
add esp, 0x1c
mov edx, dword [esp + 0x24]
inc edi
mov ecx, esi
cmp edi, 1
jne 0x4a7cc1
call fcn.004949f0
jmp 0x4a7cd9
push edi
call fcn.00491cb0
add esp, 4
cmp edi, dword [esi + 0x1c]
jle 0x4a7cd9
mov eax, dword [esp + 0x24]
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], eax
cmp dword [esp + 0x50], 0
mov edi, dword [esp + 0x10]
jne 0x4a81ef
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4a7d09
push dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edx, 0x46
push 0
call fcn.00478680
mov eax, dword [edi + 0x38]
add esp, 8
mov edx, dword [esp + 0x58]
test edx, edx
js 0x4a7e6d
cmp byte [esp + 0xb], 0
je 0x4a7d8d
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x10]
push edx
push dword [esp + 0x38]
mov edx, 0x63
call fcn.00478530
add esp, 0xc
mov edx, dword [esp + 0xc]
cmp dword [edi + 0x38], 0
jne 0x4a7e2b
push dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov edx, 0x33
mov ecx, edi
call fcn.00478610
mov ecx, dword [esp + 0x44]
add esp, 4
mov edx, 0x75
mov esi, eax
push ecx
push dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
push ecx
mov ecx, edi
call fcn.00478530
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00478e60
mov esi, dword [esp + 0x38]
jmp 0x4a7e4c
cmp dword [esp + 0x34], 0
je 0x4a7db3
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x10]
add eax, edx
push eax
mov edx, 0x4b
call fcn.00478680
add esp, 8
jmp 0x4a7d37
mov eax, dword [esp + 0x44]
lea edx, [edx + edx*2]
push dword [esp + 0x2c]
mov ecx, esi
mov edx, dword [eax + edx*8 + 4]
call fcn.00493560
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [edx + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [edx]
shl ecx, 2
cmp byte [eax + 0x49], 0
je 0x4a7deb
mov eax, 0x59f36c
jmp 0x4a7df3
mov eax, dword [edx + 0x58]
add eax, 0xffffffec
add eax, ecx
cmp byte [eax], 0x46
jne 0x4a7d3b
cmp dword [edi + 0x38], 0
jne 0x4a7e2b
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x40]
mov byte [eax], 0x75
mov dword [eax + 0xc], ecx
mov dword [esp + 0x1c], 1
jmp 0x4a7ebf
mov eax, dword [edx + 0x88]
mov edx, 0x32
mov edi, dword [esp + 0xc]
add eax, 2
push eax
push dword [esp + 0x30]
mov ecx, edi
call fcn.00478680
add esp, 8
push dword [esp + 0x2c]
mov edx, 0x11
mov ecx, edi
call fcn.00478610
mov edi, dword [esp + 0x30]
add esp, 4
mov dword [esp + 0x1c], 0
jmp 0x4a7ebf
test eax, eax
jne 0x4a7e9f
cmp byte [esp + 0x6c], al
jne 0x4a7e9f
mov ecx, dword [esp + 0x40]
lea edx, [eax + 0x75]
mov edi, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x60]
push edi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00478530
add esp, 0xc
mov dword [esp + 0x1c], 1
jmp 0x4a7ebf
mov edi, dword [esp + 0x2c]
mov edx, 0x46
mov ecx, dword [esp + 0xc]
push edi
push 0
call fcn.00478680
add esp, 8
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4a7ed9
mov ecx, dword [esi + 8]
mov edx, 0x94
push edi
push eax
call fcn.00478680
add esp, 8
mov eax, dword [esp + 0x10]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x40], 0
cmp cx, word [eax + 0x2a]
jge 0x4a809d
xor edx, edx
mov dword [esp + 0x50], edx
nop dword [eax]
mov ecx, dword [esp + 0x7c]
movsx eax, word [eax + 0x28]
add ecx, edi
mov dword [esp + 0x18], ecx
cmp edi, eax
jne 0x4a7f26
push ecx
mov ecx, dword [esp + 0x10]
mov edx, 0x47
call fcn.00478610
jmp 0x4a807a
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4a7f65
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx + 0xf]
mov eax, dword [esp + 0x40]
and dl, 2
je 0x4a7f53
inc eax
or ecx, 0xffffffff
test dl, dl
cmove eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
jmp 0x4a7f7f
mov ecx, edi
sub ecx, eax
inc eax
test dl, dl
cmove eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
jmp 0x4a7f7f
mov edx, dword [eax + 4]
xor ecx, ecx
test edx, edx
jle 0x4a7f87
mov eax, dword [eax]
add eax, 4
cmp dword [eax], edi
je 0x4a7f7f
inc ecx
add eax, 8
cmp ecx, edx
jl 0x4a7f73
test ecx, ecx
js 0x4a7ffc
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x28], 0
je 0x4a7ffc
test eax, eax
je 0x4a7f97
cmp ecx, dword [eax + 4]
jge 0x4a7ffc
cmp byte [esp + 0xb], 0
je 0x4a7fbd
push dword [esp + 0x18]
mov edx, 0x63
push ecx
push dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
call fcn.00478530
add esp, 0xc
jmp 0x4a807d
cmp dword [esp + 0x34], 0
je 0x4a7fef
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x7c]
je 0x4a807d
push dword [esp + 0x18]
add eax, ecx
mov edx, 0x4c
mov ecx, dword [esp + 0x10]
push eax
call fcn.00478680
add esp, 8
jmp 0x4a807d
mov eax, dword [esp + 0x44]
lea edx, [ecx + ecx*2]
mov edx, dword [eax + edx*8 + 4]
jmp 0x4a806f
cmp byte [esi + 0x17], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x6c], eax
je 0x4a806d
mov byte [esp + 0xa4], 1
mov dword [esp + 0x94], fcn.0048f260
mov dword [esp + 0x98], 0x48f200
mov dword [esp + 0xa8], 0
test eax, eax
je 0x4a805e
mov edx, eax
lea ecx, [esp + 0x90]
call fcn.0048ab90
cmp byte [esp + 0xa4], 0
mov eax, dword [esp + 0x6c]
je 0x4a806d
push dword [esp + 0x18]
mov edx, eax
mov ecx, esi
call fcn.00493390
jmp 0x4a807a
mov edx, eax
push dword [esp + 0x18]
mov ecx, esi
call fcn.00493560
add esp, 4
mov eax, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x50]
add edx, 0x10
mov dword [esp + 0x50], edx
movsx eax, word [eax + 0x2a]
cmp edi, eax
mov eax, dword [esp + 0x10]
jl 0x4a7f00
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x38], 0
je 0x4a8138
mov edi, dword [edi + 0x40]
test edi, edi
je 0x4a80c1
mov eax, dword [esp + 0x3c]
cmp dword [edi], eax
je 0x4a80c1
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x4a80b6
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.004bf140
mov ecx, dword [esp + 0xc]
mov edx, 0xc
push 0xfffffffffffffff4
push edi
mov edi, dword [esp + 0x18]
push dword [esp + 0x68]
movsx eax, word [edi + 0x2a]
add eax, 2
push eax
push 1
call fcn.00478930
mov eax, dword [esp + 0x20]
add esp, 0x14
mov eax, dword [eax + 0x88]
test eax, eax
jle 0x4a8125
mov ecx, dword [ebp + 0x10]
cmp ecx, 0xa
movzx edx, cx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], 2
cmove edx, dword [esp + 0x70]
mov eax, dword [eax + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi + 0x78]
mov ecx, esi
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x4a81ef
push 0
lea eax, [esp + 0x74]
mov edx, edi
push eax
push dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov ecx, esi
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push 0
push dword [esp + 0x78]
push dword [esp + 0xa8]
push dword [esp + 0x7c]
push dword [esp + 0x8c]
call fcn.004a84f0
push 0
push 0
push dword [esp + 0x90]
mov edx, edi
mov ecx, esi
push 0
call fcn.004a57c0
add esp, 0x38
cmp dword [esp + 0x70], 0
je 0x4a81c4
cmp dword [esp + 0x64], 0
jne 0x4a81c0
mov eax, dword [esp + 0x3c]
test dword [eax + 0x1c], 0x4000
je 0x4a81c4
mov ecx, dword [edi + 0x48]
mov edx, dword [edi]
add ecx, 0x38
push 0
call fcn.0045d9c0
add esp, 4
cmp dword [eax + 8], 0
je 0x4a81c4
xor eax, eax
jmp 0x4a81c9
mov eax, 1
push eax
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
push 0
push dword [esp + 0x74]
push dword [esp + 0x70]
push dword [esp + 0xa0]
push dword [esp + 0x74]
call fcn.004a9a20
add esp, 0x1c
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
je 0x4a8263
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4a822a
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
push 0
push 1
push edx
mov edx, 0x50
call fcn.004784f0
add esp, 0xc
jmp 0x4a8263
lea eax, [ecx + 1]
mov dword [edx + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x58]
mov edx, dword [esp + 0x88]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x64]
test edx, edx
je 0x4a8294
push dword [esp + 0x20]
movsx eax, word [edi + 0x2a]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x84]
sub ecx, eax
sub ecx, 2
push ecx
push edi
push 2
push 0
push 0x6c
mov ecx, esi
call fcn.004bb460
add esp, 0x1c
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4a82b7
mov eax, dword [esp + 0x20]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
cmp byte [esp + 0xb], 0
je 0x4a831d
push dword [esp + 0x80]
mov edx, 7
mov ecx, edi
push dword [esp + 0x34]
call fcn.00478680
mov eax, dword [edi]
add esp, 8
mov edx, dword [edi + 0x88]
cmp byte [eax + 0x49], 0
je 0x4a82ed
mov eax, 0x59f36c
jmp 0x4a8305
mov ecx, dword [esp + 0x84]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*4]
push dword [esp + 0x30]
mov dword [eax + 8], edx
mov ecx, edi
mov edx, 0x72
call fcn.00478610
add esp, 4
jmp 0x4a836c
cmp dword [esp + 0x34], 0
je 0x4a836c
mov edx, dword [esp + 0x80]
mov ecx, edi
call fcn.004786f0
mov eax, dword [edi]
mov edx, dword [edi + 0x88]
cmp byte [eax + 0x49], 0
je 0x4a834a
mov eax, 0x59f36c
mov dword [eax + 8], edx
jmp 0x4a836c
mov ecx, dword [esp + 0x84]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4a836c
mov edi, dword [esp + 0xc]
cmp byte [esi + 0x12], 0
jne 0x4a8385
cmp dword [esi + 0x7c], 0
jne 0x4a8385
cmp dword [esi + 0x74], 0
je 0x4a8385
mov ecx, esi
call fcn.004a6f40
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
je 0x4a83dd
cmp byte [esi + 0x12], 0
jne 0x4a83dd
cmp dword [esi + 0x7c], 0
jne 0x4a83dd
push 1
push dword [esp + 0x8c]
mov edx, 0x4e
mov ecx, edi
call fcn.00478680
add esp, 8
mov edx, 1
mov ecx, edi
call fcn.0047a3b0
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
jne 0x4a83dd
mov ecx, dword [edi + 0x64]
mov edx, str.rows_inserted
push 0
push 1
push 0xffffffffffffffff
call fcn.00477900
add esp, 0xc
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x74]
call fcn.0049d960
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a8401
mov edx, eax
mov ecx, esi
call fcn.0048f0e0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4a8417
push 1
mov edx, eax
mov ecx, esi
call fcn.004afbd0
add esp, 4
mov edx, edi
mov ecx, esi
call fcn.0049d560
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4a848d
test esi, esi
je 0x4a8484
cmp dword [esi + 0x1d8], 0
je 0x4a8452
mov edx, ecx
mov ecx, esi
call fcn.00459240
pop edi
pop esi
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00514e1d
mov esp, ebp
pop ebp
ret
cmp ecx, dword [esi + 0x128]
jb 0x4a8484
cmp ecx, dword [esi + 0x12c]
jae 0x4a8484
mov eax, dword [esi + 0x124]
mov dword [ecx], eax
mov dword [esi + 0x124], ecx
pop edi
pop esi
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00514e1d
mov esp, ebp
pop ebp
ret
push ecx
call fcn.00459190
add esp, 4
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
xor ecx, esp
call fcn.00514e1d
mov esp, ebp
pop ebp
ret