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

Disassembly:
sub esp, 0xe4
mov eax, dword [0x490004]
xor eax, esp
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xfc]
xorps xmm0, xmm0
push ebx
mov ebx, dword [esp + 0xec]
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x50], edx
push edi
mov edi, dword [esp + 0xfc]
mov ebp, dword [esi]
mov dword [esp + 0x88], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
movlpd qword [esp + 0xa8], xmm0
mov dword [esp + 0x6c], ebp
cmp dword [esi + 0x24], eax
jne 0x44d4f2
cmp byte [ebp + 0x51], al
jne 0x44d4f2
call fcn.00438da6
mov edi, eax
mov dword [esp + 0x9c], edi
test edi, edi
je 0x44d4ee
mov edx, dword [edi + 0x48]
mov ecx, dword [esi]
call fcn.00443a21
mov dword [esp + 0x48], eax
mov edx, edi
lea eax, [esp + 0xa0]
mov ecx, esi
push eax
push ebx
push 0x7d
call fcn.0044bbe9
add esp, 0xc
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0xc]
mov edx, edi
mov ecx, esi
mov dword [esp + 0x8c], eax
call fcn.00435cfd
test eax, eax
jne 0x44d4ee
mov eax, dword [esp + 0xa0]
mov edx, edi
push eax
mov ecx, esi
mov dword [esp + 0xc4], eax
call fcn.00438de3
pop ecx
test eax, eax
jne 0x44d4ee
mov ebx, dword [esi + 0x28]
mov edx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x80], edx
lea eax, [ebx + 1]
mov dword [esi + 0x28], eax
test byte [edi + 0x24], 0x20
mov dword [esp + 0x78], eax
jne 0x44c46f
and dword [esp + 0x1c], 0
jmp 0x44c47e
mov ecx, edi
call fcn.0043430e
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [edi + 8]
xor ebp, ebp
mov dword [esp + 0xb4], ebp
test ecx, ecx
je 0x44c4b9
mov edx, eax
cmp dword [esp + 0x1c], ecx
mov eax, edx
cmovne eax, ebx
inc edx
mov dword [esi + 0x28], edx
inc ebp
mov ecx, dword [ecx + 0x14]
mov ebx, eax
test ecx, ecx
jne 0x44c490
mov edx, dword [esp + 0x80]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x44c4d2
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x78], eax
mov dword [esi + 0x28], edx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
push 0
mov dword [eax + 0x34], ebx
movsx eax, word [edi + 0x2a]
add eax, ebp
lea eax, [eax*4 + 6]
add eax, ebp
push eax
call fcn.004049b8
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x44d4e6
movsx eax, word [edi + 0x2a]
lea eax, [ecx + eax*4]
lea ebx, [eax + 4]
mov dword [esp + 0x58], eax
lea eax, [ebp + 1]
push eax
xor eax, eax
lea ebx, [ebx + ebp*4]
inc eax
mov dword [esp + 0x6c], ebx
push eax
push ebx
call fcn.00462ad0
xor edx, edx
xor eax, eax
add esp, 0xc
mov byte [ebx + ebp + 1], dl
mov ecx, edx
cmp ax, word [edi + 0x2a]
jge 0x44c552
mov esi, dword [esp + 0x28]
or dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x44c53e
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x18]
xorps xmm0, xmm0
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0xd0], eax
mov al, dl
movlpd qword [esp + 0xd4], xmm0
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xe0], 0x200
mov byte [esp + 0x84], dl
mov byte [esp + 0x13], al
mov dword [esp + 0x20], edx
cmp dword [ebx], edx
jle 0x44c712
lea ebp, [ebx + 4]
mov edx, dword [ebp]
lea ecx, [esp + 0xc8]
call fcn.0042a8e5
test eax, eax
jne 0x44d4d1
movsx eax, word [edi + 0x2a]
xor ebx, ebx
test eax, eax
jle 0x44c64c
mov eax, dword [edi + 4]
mov dword [esp + 0x2c], eax
mov edx, dword [ebp + 4]
mov ecx, dword [eax]
call fcn.00406f32
test eax, eax
je 0x44c600
mov eax, dword [esp + 0x2c]
inc ebx
movsx ecx, word [edi + 0x2a]
add eax, 0x10
mov dword [esp + 0x2c], eax
cmp ebx, ecx
jl 0x44c5dc
jmp 0x44c64c
movsx eax, word [edi + 0x28]
cmp ebx, eax
jne 0x44c618
xor eax, eax
inc eax
mov byte [esp + 0x13], al
mov eax, dword [ebp]
mov dword [esp + 0x4c], eax
jmp 0x44c641
cmp dword [esp + 0x1c], 0
je 0x44c641
mov ecx, dword [edi + 4]
mov eax, ebx
add eax, eax
xor edx, edx
inc edx
test byte [ecx + eax*8 + 0xf], dl
mov eax, dword [esp + 0x84]
movzx eax, al
cmovne eax, edx
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov dword [ecx + ebx*4], eax
mov cl, byte [esp + 0x13]
movsx eax, word [edi + 0x2a]
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
cmp ebx, eax
jl 0x44c692
cmp dword [esp + 0x1c], 0
jne 0x44c72d
mov ecx, dword [ebp + 4]
call fcn.0042c616
test eax, eax
je 0x44c72d
xor eax, eax
or ebx, 0xffffffff
inc eax
mov byte [esp + 0x13], al
mov eax, dword [ebp]
mov dword [esp + 0x4c], eax
jmp 0x44c696
test ebx, ebx
jns 0x44c69d
mov edx, str.ROWID
jmp 0x44c6ba
lfence
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
push edx
push dword [edi]
push 0x17
pop edx
call fcn.004337d2
xor ecx, ecx
add esp, 0xc
inc ecx
cmp eax, ecx
je 0x44d4d1
cmp eax, 2
jne 0x44c6f2
mov eax, dword [esp + 0x28]
or dword [eax + ebx*4], 0xffffffff
mov ebx, dword [esp + 0x20]
add ebp, 0x18
mov eax, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x20], ebx
cmp ebx, dword [eax]
jl 0x44c5b4
mov al, byte [esp + 0x13]
mov ebp, dword [esp + 0x54]
mov dl, byte [esp + 0x84]
add dl, al
cmp dword [edi + 0x38], 0
mov byte [esp + 0x7c], dl
je 0x44c753
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x44c76d
imul eax, dword [esp + 0x20], 0x18
mov ebx, dword [esp + 0x18]
push dword [eax + ebx + 8]
push str.no_such_column:__s
push esi
call fcn.00406e5f
xor eax, eax
add esp, 0xc
inc eax
mov byte [esi + 0x11], al
jmp 0x44d4d5
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov dword [ebp + 0x40], eax
movzx eax, dl
mov edx, edi
mov dword [ebp + 0x44], ecx
mov ecx, esi
mov ebp, dword [esp + 0x28]
push eax
push ebp
mov dword [esp + 0xc0], eax
call fcn.0043cccb
cmp dword [esp + 0x108], 5
mov edx, eax
mov eax, dword [esp + 0xf0]
pop ecx
pop ecx
push 1
pop ecx
cmove eax, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0xe8], eax
xor ecx, ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x74], ecx
test ebx, ebx
je 0x44c8f4
mov eax, dword [esp + 0x68]
mov edi, ebp
inc eax
mov dword [esp + 0x30], eax
cmp byte [esp + 0x7c], 0
jne 0x44c8a5
xor ecx, ecx
inc ecx
cmp edx, ecx
jg 0x44c8a5
lfence
cmp ebx, dword [esp + 0x1c]
je 0x44c8a5
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x44c810
movzx eax, byte [esp + 0x13]
mov edx, edi
push eax
call fcn.0043e82a
pop ecx
test eax, eax
jne 0x44c8a5
mov eax, dword [esp + 0x30]
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x2c], ecx
cmp dx, word [ebx + 0x32]
jae 0x44c8bc
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x44c83f
cwde
mov eax, dword [edi + eax*4]
not eax
shr eax, 0x1f
jmp 0x44c860
movzx eax, byte [esp + 0x13]
mov edx, edi
mov ecx, dword [ebx + 0x28]
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + eax + 4]
call fcn.0043e82a
mov edx, dword [esp + 0x24]
pop ecx
mov ecx, dword [esp + 0x2c]
test eax, eax
jne 0x44c87a
movzx eax, word [ebx + 0x32]
inc ecx
add edx, 0x18
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], edx
cmp ecx, eax
jl 0x44c828
jmp 0x44c8b8
inc dword [esi + 0x2c]
movzx eax, word [ebx + 0x34]
mov ebp, dword [esi + 0x2c]
add eax, ebp
cmp dword [esp + 0x100], 0xb
mov dword [esi + 0x2c], eax
jne 0x44c8b4
cmp byte [ebx + 0x36], 5
jne 0x44c8b4
xor eax, eax
inc eax
mov dword [esp + 0xe8], eax
jmp 0x44c8b4
inc dword [esi + 0x2c]
movzx eax, word [ebx + 0x34]
mov ebp, dword [esi + 0x2c]
add eax, ebp
mov dword [esi + 0x2c], eax
test ebp, ebp
jne 0x44c8c1
mov eax, dword [esp + 0x30]
mov byte [eax], 0
jmp 0x44c8c5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
mov dword [edx + ecx*4], ebp
inc ecx
mov ebx, dword [ebx + 0x14]
inc eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x30], eax
test ebx, ebx
jne 0x44c7cc
mov edi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [edx + ecx*4], eax
cmp dword [esp + 0xe8], 0
je 0x44c924
mov eax, dword [esp + 0xb4]
inc eax
push eax
xor eax, eax
inc eax
push eax
push dword [esp + 0x70]
call fcn.00462ad0
add esp, 0xc
mov ecx, esi
call fcn.00445df8
mov ebx, eax
test ebx, ebx
je 0x44d4d1
cmp byte [esi + 0x12], 0
jne 0x44c942
or dword [ebx + 0x98], 0x20
cmp dword [esp + 0x44], 0
jne 0x44c954
cmp dword [esp + 0x34], 0
jne 0x44c954
xor edx, edx
jmp 0x44c959
xor eax, eax
lea edx, [eax + 1]
push dword [esp + 0x48]
mov ecx, esi
call fcn.004381a2
cmp dword [edi + 0x38], 0
pop ecx
jne 0x44c9f0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x58]
mov edx, dword [esi + 0x2c]
inc edx
cmp byte [esp + 0x84], 0
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x94], eax
mov dword [esi + 0x2c], edx
mov dword [esp + 0x24], edx
jne 0x44c9ab
cmp dword [esp + 0x44], 0
jne 0x44c9ab
mov eax, dword [esp + 0x34]
mov ecx, edx
test eax, eax
je 0x44c9c2
movsx ecx, word [edi + 0x2a]
lea eax, [edx + 1]
add ecx, edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x7c], 0
jne 0x44c9d4
cmp dword [esp + 0x44], 0
jne 0x44c9d4
test eax, eax
je 0x44c9e0
lea eax, [ecx + 1]
mov dword [esp + 0x5c], eax
mov ecx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x50], eax
movsx eax, word [edi + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
cmp dword [esp + 0x8c], 0
je 0x44ca30
push dword [esp + 0x14]
mov eax, dword [esi + 0xe8]
mov edx, edi
push 0
push 0
push dword [esp + 0x4c]
mov dword [esp + 0xb0], eax
mov ecx, esi
mov eax, dword [edi]
mov dword [esp + 0xac], esi
mov dword [esi + 0xe8], eax
call fcn.00438e6e
add esp, 0x10
jmp 0x44ca4c
mov eax, dword [esp + 0xac]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0xc8]
call fcn.0042a8e5
test eax, eax
jne 0x44d4b3
xor ecx, ecx
cmp dword [edi + 0x38], ecx
je 0x44ca94
push dword [esp + 0x100]
mov ebx, dword [esp + 0x1c]
mov ecx, esi
push dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
push ebp
push dword [esp + 0x58]
push ebx
push edi
call fcn.0044d52c
add esp, 0x18
jmp 0x44d4b7
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x20]
and eax, 0x80
or eax, ecx
je 0x44cae1
cmp dword [esi + 0x70], ecx
jne 0x44cae1
cmp byte [esi + 0x12], cl
jne 0x44cae1
cmp dword [esp + 0x64], ecx
jne 0x44cae1
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push ecx
push eax
push ecx
push 0x46
pop edx
mov ecx, ebx
mov dword [esp + 0xc8], eax
call fcn.0041c3a0
add esp, 0xc
xor ecx, ecx
test byte [edi + 0x24], 0x20
jne 0x44cb23
push dword [esp + 0x24]
push dword [esp + 0x98]
push ecx
push 0x49
pop edx
mov ecx, ebx
call fcn.0041c3a0
and dword [esp + 0x6c], 0
xor eax, eax
and dword [esp + 0x2c], eax
add esp, 0xc
and dword [esp + 0x3c], eax
xor ebp, ebp
mov dword [esp + 0xb0], eax
cmp dword [esp + 0x64], eax
je 0x44cb9c
jmp 0x44cc54
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x32]
mov eax, dword [esi + 0x2c]
movsx ebp, cx
mov dword [esp + 0x2c], ecx
lea edx, [eax + 1]
inc eax
add eax, ebp
mov dword [esp + 0x20], edx
cmp dword [esp + 0x64], 0
mov dword [esp + 0x3c], eax
mov dword [esi + 0x2c], eax
jne 0x44cc50
mov eax, dword [esi + 0x28]
mov ecx, ebx
mov dword [esp + 0x60], eax
inc eax
mov dword [esi + 0x28], eax
lea eax, [ebp - 1]
add eax, edx
push eax
push edx
push 0
push 0x49
pop edx
call fcn.0041c3a0
add esp, 0xc
mov ecx, ebx
push 0
push ebp
push dword [esp + 0x68]
push 0x70
pop edx
call fcn.0041c3a0
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0xb0], eax
call fcn.0041caed
mov ebp, dword [esp + 0x2c]
cmp byte [esi + 0x12], 0
mov ecx, 0x1004
jne 0x44cbca
cmp dword [esp + 0x44], 0
jne 0x44cbca
cmp dword [esp + 0x34], 0
jne 0x44cbca
cmp byte [esp + 0x7c], 0
jne 0x44cbca
cmp dword [esp + 0xe8], 0
lea eax, [ecx + 8]
cmove ecx, eax
push dword [esp + 0x78]
mov edx, dword [esp + 0x58]
push ecx
push 0
push 0
push dword [esp + 0x50]
mov ecx, esi
call fcn.00456849
mov edx, eax
add esp, 0x14
mov dword [esp + 0x2c], edx
test edx, edx
je 0x44d4b3
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
movzx edx, byte [edx + 0x31]
mov dword [esp + 0xa8], eax
xor eax, eax
inc eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], edx
cmp edx, eax
je 0x44cc9a
cmp dword [esi + 0x6c], 0
mov eax, esi
cmovne eax, dword [esi + 0x6c]
cmp edx, 2
mov edx, dword [esp + 0x14]
mov byte [eax + 0x14], 1
jne 0x44cc9e
test ecx, ecx
js 0x44cc9e
cmp ecx, edx
je 0x44cc9e
mov eax, ecx
mov ecx, dword [esp + 0x68]
sub eax, dword [esp + 0x80]
cmp byte [eax + ecx], 0
je 0x44cc9e
and dword [esp + 0x38], 0
jmp 0x44cc9e
mov ebp, dword [esp + 0x2c]
and dword [esp + 0x2c], 0
xor eax, eax
push 0x10
push dword [esp + 0x34]
inc eax
push dword [esp + 0x48]
mov dword [esp + 0x44], eax
push esi
call fcn.0042f237
and dword [esp + 0x70], 0
add esp, 0x10
xor eax, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0x14]
test byte [edi + 0x24], 0x20
jne 0x44ccf6
mov ebp, dword [esp + 0x24]
mov ecx, ebx
push 0
push ebp
push edx
mov edx, 0x80
call fcn.0041c3a0
mov edx, dword [esp + 0x44]
add esp, 0xc
test edx, edx
jne 0x44cdae
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push 0
mov dword [edx + ecx*4], eax
mov edx, 0x93
push ebp
push dword [esp + 0x9c]
mov ecx, ebx
call fcn.0041c3a0
add esp, 0xc
jmp 0x44cdaa
and dword [esp + 0x74], 0
movsx ebp, bp
test ebp, ebp
jle 0x44cd36
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
mov ecx, ebx
add eax, esi
push eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push edx
mov edx, edi
call fcn.0042daba
mov edx, dword [esp + 0x20]
add esp, 0xc
inc esi
cmp esi, ebp
jl 0x44cd06
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x44cd67
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x44cd56
mov edx, eax
mov ecx, ebx
call fcn.0041c9ae
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x3c], eax
jmp 0x44cdae
mov edx, dword [esp + 0x1c]
push ebp
push ecx
mov ecx, dword [esp + 0x74]
call fcn.0043d45a
pop ecx
push eax
push dword [esp + 0x44]
mov ecx, ebx
push ebp
push dword [esp + 0x30]
push 0x5c
pop edx
call fcn.0041c4e0
add esp, 0x14
mov edx, 0x84
mov ecx, ebx
push ebp
push dword [esp + 0x24]
push dword [esp + 0x44]
push dword [esp + 0x6c]
call fcn.0041c609
add esp, 0x10
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x64], 0
jne 0x44cf7a
cmp edx, 2
je 0x44cdcb
mov ecx, dword [esp + 0x2c]
call fcn.00457220
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x44ce7f
xor ebp, ebp
test edx, edx
je 0x44ce47
mov eax, dword [esp + 0xa8]
test eax, eax
js 0x44cdfa
sub eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x68]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x48]
test ecx, ecx
js 0x44ce1a
mov esi, dword [esp + 0x68]
mov eax, ecx
sub eax, dword [esp + 0x80]
mov byte [eax + esi], 0
mov esi, dword [esp + 0x88]
cmp edx, 2
jne 0x44ce47
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0xb4]
setns al
sub ecx, eax
test ecx, ecx
jle 0x44ce47
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 0x11
pop edx
call fcn.0041c3a0
add esp, 0xc
mov ebp, eax
xor edx, edx
mov ecx, esi
push edx
push edx
push dword [esp + 0x70]
push dword [esp + 0x8c]
push edx
push 0x62
mov edx, edi
call fcn.0043f5d4
add esp, 0x18
test ebp, ebp
je 0x44ce78
mov edx, ebp
mov ecx, ebx
call fcn.0041cb08
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x44cee8
test eax, eax
jne 0x44cebb
mov eax, dword [esp + 0x14]
cmp dword [esp + 0xa8], eax
je 0x44cebb
cmp dword [esp + 0x48], eax
je 0x44cebb
push dword [esp + 0x98]
mov ecx, ebx
push dword [esp + 0x40]
push dword [esp + 0x38]
push eax
push 0x1c
pop edx
call fcn.0041c609
add esp, 0x10
xor eax, eax
inc eax
cmp ebp, eax
je 0x44cecc
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x24]
cmovne eax, dword [esp + 0x3c]
push 0
push dword [esp + 0x34]
push eax
push 0x32
jmp 0x44cf6f
cmp dword [esp + 0x1c], 0
mov ecx, ebx
je 0x44cf48
dec dword [esi + 0x38]
mov ebp, dword [esi + 0x38]
push 0
push dword [esp + 0x34]
mov dword [esp + 0x78], ebp
push dword [esp + 0x68]
push 0x24
pop edx
call fcn.0041c3a0
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x40]
push dword [esp + 0x68]
push 0x7f
pop edx
call fcn.0041c3a0
add esp, 0xc
mov dword [esp + 0xc4], eax
mov ecx, ebx
push 0
push dword [esp + 0x40]
push ebp
push dword [esp + 0x20]
push 0x1c
pop edx
call fcn.0041c609
add esp, 0x10
jmp 0x44cf7a
mov ebp, dword [esp + 0x24]
push ebp
push dword [esp + 0x34]
push dword [esp + 0x9c]
push 0x29
pop edx
call fcn.0041c3a0
add esp, 0xc
mov dword [esp + 0x70], eax
push ebp
push eax
push dword [esp + 0x1c]
push 0x1f
pop edx
mov ecx, ebx
call fcn.0041c3a0
add esp, 0xc
cmp byte [esp + 0x13], 0
je 0x44cfa4
mov ebp, dword [esp + 0x5c]
mov ecx, esi
mov edx, dword [esp + 0x4c]
push ebp
call fcn.0042ebb4
pop ecx
push 0
push 0
push ebp
push 0xf
pop edx
mov ecx, ebx
call fcn.0041c3a0
add esp, 0xc
cmp byte [esp + 0x84], 0
mov eax, dword [esp + 0x34]
jne 0x44cfc0
test eax, eax
jne 0x44cfc4
cmp dword [esp + 0x44], eax
je 0x44d0a7
test eax, eax
je 0x44cfd1
mov edx, edi
mov ecx, esi
call fcn.0043cbf9
mov ebp, eax
jmp 0x44cfd3
xor ebp, ebp
push dword [esp + 0x100]
mov edx, dword [esp + 0x48]
mov ecx, esi
push edi
push 3
push 0
push dword [esp + 0x28]
call fcn.0044c225
or ebp, eax
add esp, 0x14
mov dword [esp + 0xa8], ebp
xor eax, eax
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x44d082
mov esi, dword [esp + 0xa8]
xor edx, edx
mov dword [esp + 0x48], edx
cmp esi, 0xffffffff
je 0x44d04c
cmp ebp, 0x20
jge 0x44d026
xor eax, eax
mov ecx, ebp
inc eax
shl eax, cl
test esi, eax
jne 0x44d04c
mov eax, dword [edi + 4]
xor ecx, ecx
inc ecx
test byte [eax + edx + 0xf], cl
jne 0x44d04c
mov eax, dword [esp + 0x90]
mov ecx, ebx
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.0041c3a0
jmp 0x44d064
mov eax, dword [esp + 0x90]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push dword [esp + 0x1c]
call fcn.0042daba
mov edx, dword [esp + 0x54]
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
add edx, 0x10
mov dword [esp + 0x48], edx
cmp ebp, eax
jl 0x44d011
mov esi, dword [esp + 0x88]
cmp byte [esp + 0x13], 0
jne 0x44d0a7
cmp dword [esp + 0x1c], 0
jne 0x44d0a7
push 0
push dword [esp + 0x60]
mov ecx, ebx
push dword [esp + 0x2c]
push 0x4e
pop edx
call fcn.0041c3a0
add esp, 0xc
push dword [esp + 0x100]
mov edx, dword [esp + 0x48]
xor eax, eax
push edi
inc eax
mov ecx, esi
push eax
push eax
push dword [esp + 0x28]
call fcn.0044c225
mov edx, eax
add esp, 0x14
xor eax, eax
mov dword [esp + 0x90], edx
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x44d16b
movsx eax, word [edi + 0x28]
cmp ebp, eax
jne 0x44d0fc
mov eax, dword [esp + 0x50]
mov ecx, ebx
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.0041c3a0
jmp 0x44d154
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebp*4]
test ecx, ecx
js 0x44d126
mov eax, dword [esp + 0x50]
imul edx, ecx, 0x18
add eax, ebp
push eax
mov eax, dword [esp + 0x1c]
mov ecx, esi
lfence
mov edx, dword [edx + eax + 4]
call fcn.0042ebb4
pop ecx
jmp 0x44d157
xor eax, eax
inc eax
test dword [esp + 0xc0], eax
je 0x44d13f
cmp ebp, 0x1f
jg 0x44d13f
mov ecx, ebp
shl eax, cl
test edx, eax
je 0x44d0e5
mov eax, dword [esp + 0x50]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push dword [esp + 0x1c]
call fcn.0042daba
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
mov edx, dword [esp + 0x90]
cmp ebp, eax
jl 0x44d0dd
xor eax, eax
inc eax
test byte [esp + 0xc0], al
je 0x44d231
push dword [esp + 0x50]
mov edx, edi
mov ecx, ebx
call fcn.0043d502
mov ebp, dword [esp + 0x74]
xor eax, eax
mov edx, dword [esp + 0x48]
inc eax
pop ecx
push ebp
push dword [esp + 0x104]
mov ecx, esi
push dword [esp + 0x2c]
push edi
push eax
push dword [esp + 0x2c]
push 0x7d
call fcn.0044c1d1
add esp, 0x1c
mov ecx, ebx
cmp dword [esp + 0x1c], 0
je 0x44d1d8
push dword [esp + 0x98]
push dword [esp + 0x40]
push ebp
push dword [esp + 0x20]
push 0x1c
pop edx
call fcn.0041c609
add esp, 0x10
jmp 0x44d1ec
push dword [esp + 0x24]
push ebp
push dword [esp + 0x1c]
push 0x1f
pop edx
call fcn.0041c3a0
add esp, 0xc
xor eax, eax
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x44d231
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp dword [eax + ebp*4], 0
jge 0x44d221
movsx eax, word [edi + 0x28]
cmp ebp, eax
je 0x44d221
mov eax, dword [esp + 0x50]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push esi
call fcn.0042daba
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
cmp ebp, eax
jl 0x44d1fa
mov esi, dword [esp + 0x88]
cmp dword [esp + 0x8c], 0
mov ebp, dword [esp + 0x70]
jne 0x44d3b6
push 0
push dword [esp + 0x2c]
lea eax, [esp + 0xf0]
mov edx, edi
push eax
push ebp
push dword [esp + 0x110]
mov ecx, esi
push dword [esp + 0x90]
push dword [esp + 0x3c]
push dword [esp + 0x78]
push dword [esp + 0x98]
push dword [esp + 0x38]
push dword [esp + 0x80]
call fcn.0043e881
add esp, 0x2c
cmp dword [esp + 0xe8], 0
jne 0x44d297
cmp byte [esp + 0x7c], 0
je 0x44d2d1
cmp dword [esp + 0x1c], 0
mov ecx, ebx
je 0x44d2bd
push dword [esp + 0x98]
push dword [esp + 0x40]
push ebp
push dword [esp + 0x20]
push 0x1c
pop edx
call fcn.0041c609
add esp, 0x10
jmp 0x44d2d1
push dword [esp + 0x24]
push ebp
push dword [esp + 0x1c]
push 0x1f
pop edx
call fcn.0041c3a0
add esp, 0xc
cmp dword [esp + 0x34], 0
je 0x44d2f5
push dword [esp + 0xb8]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push 0
push dword [esp + 0x30]
call fcn.0043c7b6
add esp, 0x10
push 0xffffffffffffffff
push dword [esp + 0x5c]
mov edx, edi
mov ecx, esi
push dword [esp + 0x80]
push dword [esp + 0x20]
call fcn.00439a1c
mov eax, dword [esp + 0x44]
xor ecx, ecx
inc ecx
add esp, 0x10
cmp eax, ecx
jg 0x44d324
cmp byte [esp + 0x7c], 0
je 0x44d33d
push 0
push 0
push dword [esp + 0x1c]
mov ecx, ebx
push 0x7b
pop edx
call fcn.0041c3a0
mov eax, dword [esp + 0x40]
add esp, 0xc
test eax, eax
je 0x44d35e
push dword [esp + 0xb8]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x64]
push 0
call fcn.0043c7b6
add esp, 0x10
cmp dword [esp + 0x38], 2
mov edx, edi
push 0
push 0
push 4
pop eax
push 6
pop ecx
cmove eax, ecx
mov ecx, esi
push eax
push dword [esp + 0x64]
push dword [esp + 0x6c]
push dword [esp + 0x8c]
push dword [esp + 0x2c]
call fcn.0043f46c
add esp, 0x1c
cmp dword [esp + 0x34], 0
je 0x44d3b6
push dword [esp + 0xb8]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x24]
call fcn.0043d303
add esp, 0x10
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x44d3d5
xor ecx, ecx
push 0
inc ecx
push ecx
push eax
push 0x53
pop edx
mov ecx, ebx
call fcn.0041c3a0
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, esi
push ebp
push dword [esp + 0x104]
push dword [esp + 0x2c]
push edi
push 2
push dword [esp + 0x2c]
push 0x7d
call fcn.0044c1d1
mov eax, dword [esp + 0x54]
xor ecx, ecx
inc ecx
add esp, 0x1c
cmp eax, ecx
je 0x44d449
mov edx, ebp
mov ecx, ebx
cmp eax, 2
jne 0x44d41c
call fcn.0041c6a2
mov ecx, dword [esp + 0x2c]
call fcn.00457220
jmp 0x44d449
cmp dword [esp + 0x1c], 0
je 0x44d444
call fcn.0041c6a2
push 0
push dword [esp + 0xc8]
mov ecx, ebx
push dword [esp + 0x68]
push 5
pop edx
call fcn.0041c3a0
add esp, 0xc
jmp 0x44d449
call fcn.0041c41c
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.0041c6a2
cmp byte [esi + 0x12], 0
jne 0x44d474
cmp dword [esi + 0x70], 0
jne 0x44d474
cmp dword [esp + 0x64], 0
jne 0x44d474
cmp dword [esi + 0x68], 0
je 0x44d474
mov ecx, esi
call fcn.0043d7b8
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x44d4b3
xor ecx, ecx
push 0
inc ecx
push ecx
push eax
push 0x51
pop edx
mov ecx, ebx
call fcn.0041c3a0
xor eax, eax
add esp, 0xc
mov ecx, ebx
lea edx, [eax + 1]
call fcn.0041d6ce
push 0
push str.rows_updated
push ecx
xor edx, edx
mov ecx, ebx
call fcn.0041d72a
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x44d4d5
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0xe8], ecx
jmp 0x44d4d5
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov ecx, ebp
mov edx, dword [esp + 0x28]
call fcn.004047d8
jmp 0x44d4ee
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov ecx, ebp
call fcn.00437d53
test ebx, ebx
je 0x44d50a
mov edx, ebx
mov ecx, ebp
call fcn.0042c217
mov edx, edi
mov ecx, ebp
call fcn.0042b66f
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004614f6
add esp, 0xe4
ret