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

Disassembly:
sub esp, 0xdc
push ebx
xor eax, eax
mov dword [esp + 0x54], edx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0xb8], eax
xorps xmm0, xmm0
mov dword [esp + 0x84], esi
push edi
mov dword [esp + 0x48], eax
mov ebx, dword [esi]
mov dword [esp + 0x94], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
movlpd qword [esp + 0x98], xmm0
mov dword [esp + 0x7c], ebx
cmp dword [esi + 0x24], eax
jne 0x451f46
cmp byte [ebx + 0x51], al
jne 0x451f46
call fcn.0043dc6c
mov edi, eax
mov dword [esp + 0xb4], edi
test edi, edi
je 0x451f46
mov edx, dword [edi + 0x48]
mov ecx, dword [esi]
call fcn.00448606
mov ecx, dword [esp + 0xf0]
mov edx, edi
mov dword [esp + 0x44], eax
lea eax, [esp + 0xa8]
push eax
push ecx
push 0x7d
mov ecx, esi
call fcn.004506b2
add esp, 0xc
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0xc]
mov edx, edi
mov ecx, esi
mov dword [esp + 0x78], eax
call fcn.0043ac6d
test eax, eax
jne 0x451f46
push dword [esp + 0xa8]
mov edx, edi
mov ecx, esi
call fcn.0043dca9
pop ecx
test eax, eax
jne 0x451f46
mov ebx, dword [esi + 0x28]
mov edx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x80], edx
lea eax, [ebx + 1]
mov dword [esi + 0x28], eax
test byte [edi + 0x24], 0x20
mov dword [esp + 0x74], eax
jne 0x450ebe
and dword [esp + 0x1c], 0
jmp 0x450ecd
mov ecx, edi
call fcn.004392c1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [edi + 8]
xor ebp, ebp
mov dword [esp + 0xa4], ebp
test ecx, ecx
je 0x450f08
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 0x450edf
mov edx, dword [esp + 0x80]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x104]
test eax, eax
je 0x450f24
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x74], eax
mov dword [esi + 0x28], edx
mov eax, dword [esp + 0x60]
push 0
mov dword [eax + 0x34], ebx
movsx eax, word [edi + 0x2a]
mov ebx, dword [esp + 0x80]
add eax, ebp
mov ecx, ebx
lea eax, [eax*4 + 6]
add eax, ebp
push eax
call fcn.0040b343
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x451f46
movsx eax, word [edi + 0x2a]
lea eax, [ecx + eax*4]
lea ebx, [eax + 4]
mov dword [esp + 0x54], 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.00478810
xor edx, edx
xor eax, eax
add esp, 0xc
mov byte [ebx + ebp + 1], dl
mov ecx, edx
cmp ax, word [edi + 0x2a]
jge 0x450fa9
mov esi, dword [esp + 0x28]
or dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x450f95
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0xf0]
xorps xmm0, xmm0
mov eax, dword [esp + 0x104]
mov ebx, dword [esp + 0x60]
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], ebx
mov dword [esp + 0xe0], 0x200
mov byte [esp + 0x84], dl
mov byte [esp + 0x17], al
mov dword [esp + 0x20], edx
cmp dword [ecx], edx
jle 0x45116f
lea ebp, [ecx + 4]
mov edx, dword [ebp]
lea ecx, [esp + 0xc8]
call fcn.0042fcd6
test eax, eax
jne 0x451f37
movsx eax, word [edi + 0x2a]
xor ebx, ebx
test eax, eax
jle 0x4510a9
mov eax, dword [edi + 4]
mov dword [esp + 0x30], eax
mov edx, dword [ebp + 4]
mov ecx, dword [eax]
call fcn.0040d786
test eax, eax
je 0x45105d
mov eax, dword [esp + 0x30]
inc ebx
movsx ecx, word [edi + 0x2a]
add eax, 0x10
mov dword [esp + 0x30], eax
cmp ebx, ecx
jl 0x451039
jmp 0x4510a9
movsx eax, word [edi + 0x28]
cmp ebx, eax
jne 0x451075
xor eax, eax
inc eax
mov byte [esp + 0x17], al
mov eax, dword [ebp]
mov dword [esp + 0x48], eax
jmp 0x45109e
cmp dword [esp + 0x1c], 0
je 0x45109e
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 al, byte [esp + 0x17]
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x17], al
movsx eax, word [edi + 0x2a]
mov dword [esp + 0x48], ecx
cmp ebx, eax
jl 0x4510ef
cmp dword [esp + 0x1c], 0
jne 0x45118a
mov ecx, dword [ebp + 4]
call fcn.0043191c
test eax, eax
je 0x45118a
xor eax, eax
or ebx, 0xffffffff
inc eax
mov byte [esp + 0x17], al
mov eax, dword [ebp]
mov dword [esp + 0x48], eax
jmp 0x4510f3
test ebx, ebx
jns 0x4510fa
mov edx, str.ROWID
jmp 0x451114
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov al, byte [esp + 0x17]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
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.004387a4
xor ecx, ecx
add esp, 0xc
inc ecx
cmp eax, ecx
je 0x451f37
cmp eax, 2
jne 0x45114c
mov eax, dword [esp + 0x28]
or dword [eax + ebx*4], 0xffffffff
mov ebx, dword [esp + 0x20]
add ebp, 0x18
mov eax, dword [esp + 0xf0]
inc ebx
mov dword [esp + 0x20], ebx
cmp ebx, dword [eax]
jl 0x451011
mov al, byte [esp + 0x17]
mov ebx, dword [esp + 0x60]
mov dl, byte [esp + 0x84]
add dl, al
cmp dword [edi + 0x38], 0
mov byte [esp + 0x70], dl
je 0x4511b3
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4511cd
imul eax, dword [esp + 0x20], 0x18
mov ecx, dword [esp + 0xf0]
push dword [eax + ecx + 8]
push str.no_such_column:__s
push esi
call fcn.0040d6b3
xor eax, eax
add esp, 0xc
inc eax
mov byte [esi + 0x11], al
jmp 0x451f37
xorps xmm0, xmm0
movlpd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x28]
mov dword [ebx + 0x40], eax
movzx eax, dl
mov edx, edi
push eax
mov dword [ebx + 0x44], ecx
mov ecx, esi
push ebp
mov dword [esp + 0xb4], eax
call fcn.00441a37
cmp dword [esp + 0x100], 5
mov edx, eax
mov eax, dword [esp + 0x58]
pop ecx
pop ecx
push 1
pop ecx
cmove eax, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x50], eax
xor ecx, ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x6c], ecx
test ebx, ebx
je 0x451348
mov eax, dword [esp + 0x68]
mov edi, ebp
inc eax
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x70], 0
jne 0x4512f9
xor ecx, ecx
inc ecx
cmp edx, ecx
jg 0x4512f9
cmp ebx, dword [esp + 0x1c]
je 0x4512f9
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x451267
movzx eax, byte [esp + 0x17]
mov edx, edi
push eax
call fcn.00443508
pop ecx
test eax, eax
jne 0x4512f9
mov eax, dword [esp + 0x2c]
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x30], ecx
cmp dx, word [ebx + 0x32]
jae 0x451310
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x451296
cwde
mov eax, dword [edi + eax*4]
not eax
shr eax, 0x1f
jmp 0x4512b7
movzx eax, byte [esp + 0x17]
mov edx, edi
mov ecx, dword [ebx + 0x28]
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + eax + 4]
call fcn.00443508
mov edx, dword [esp + 0x24]
pop ecx
mov ecx, dword [esp + 0x30]
test eax, eax
jne 0x4512d1
movzx eax, word [ebx + 0x32]
inc ecx
add edx, 0x18
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], edx
cmp ecx, eax
jl 0x45127f
jmp 0x45130c
inc dword [esi + 0x2c]
movzx eax, word [ebx + 0x34]
mov ebp, dword [esi + 0x2c]
add eax, ebp
cmp dword [esp + 0xf8], 0xb
mov dword [esi + 0x2c], eax
jne 0x451308
cmp byte [ebx + 0x36], 5
jne 0x451308
xor eax, eax
inc eax
mov dword [esp + 0x50], eax
jmp 0x451308
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 0x451315
mov eax, dword [esp + 0x2c]
mov byte [eax], 0
jmp 0x451319
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
mov dword [edx + ecx*4], ebp
inc ecx
mov ebx, dword [ebx + 0x14]
inc eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x2c], eax
test ebx, ebx
jne 0x451226
mov edi, dword [esp + 0xb4]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x54]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [edx + ecx*4], eax
cmp dword [esp + 0x50], 0
je 0x451375
mov eax, dword [esp + 0xa4]
inc eax
push eax
xor eax, eax
inc eax
push eax
push dword [esp + 0x70]
call fcn.00478810
add esp, 0xc
mov ecx, esi
call fcn.0044a8ea
mov ebx, eax
test ebx, ebx
je 0x451f37
cmp byte [esi + 0x12], 0
jne 0x451393
or dword [ebx + 0x98], 0x20
cmp dword [esp + 0x40], 0
jne 0x4513a5
cmp dword [esp + 0x34], 0
jne 0x4513a5
xor edx, edx
jmp 0x4513aa
xor eax, eax
lea edx, [eax + 1]
push dword [esp + 0x44]
mov ecx, esi
call fcn.0043d08c
cmp dword [edi + 0x38], 0
pop ecx
jne 0x451441
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esi + 0x2c]
inc edx
cmp byte [esp + 0x84], 0
mov dword [esp + 0x58], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x90], eax
mov dword [esi + 0x2c], edx
mov dword [esp + 0x24], edx
jne 0x4513fc
cmp dword [esp + 0x40], 0
jne 0x4513fc
mov eax, dword [esp + 0x34]
mov ecx, edx
test eax, eax
je 0x451413
movsx ecx, word [edi + 0x2a]
lea eax, [edx + 1]
add ecx, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x70], 0
jne 0x451425
cmp dword [esp + 0x40], 0
jne 0x451425
test eax, eax
je 0x451431
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov ecx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x4c], eax
movsx eax, word [edi + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
cmp dword [esp + 0x78], 0
je 0x451481
push dword [esp + 0x18]
mov eax, dword [esi + 0xe8]
mov edx, edi
push 0
push 0
push dword [esp + 0x100]
mov dword [esp + 0xc4], eax
mov ecx, esi
mov eax, dword [edi]
mov dword [esp + 0xd0], esi
mov dword [esi + 0xe8], eax
call fcn.0043dd34
add esp, 0x10
jmp 0x45149d
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 0xc8]
call fcn.0042fcd6
test eax, eax
jne 0x451f1f
xor ecx, ecx
cmp dword [edi + 0x38], ecx
je 0x4514ed
push dword [esp + 0xf8]
mov edx, dword [esp + 0x64]
mov ecx, esi
push dword [esp + 0xf8]
push ebp
push dword [esp + 0x54]
push dword [esp + 0x100]
push edi
call fcn.00451f7e
add esp, 0x18
jmp 0x451f1f
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x20]
and eax, 0x80
or eax, ecx
je 0x45153d
cmp dword [esi + 0x70], ecx
jne 0x45153d
cmp byte [esi + 0x12], cl
jne 0x45153d
cmp dword [esp + 0x104], ecx
jne 0x45153d
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 + 0xbc], eax
call fcn.00421dad
add esp, 0xc
xor ecx, ecx
test byte [edi + 0x24], 0x20
jne 0x451586
push dword [esp + 0x24]
push dword [esp + 0x94]
push ecx
push 0x49
pop edx
mov ecx, ebx
call fcn.00421dad
and dword [esp + 0x68], 0
xor eax, eax
and dword [esp + 0x2c], eax
add esp, 0xc
and dword [esp + 0x3c], eax
xor ebp, ebp
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x104], eax
je 0x451602
jmp 0x4516ba
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x32]
mov eax, dword [esi + 0x2c]
movsx ebp, cx
mov dword [esp + 0x30], ecx
lea edx, [eax + 1]
inc eax
add eax, ebp
mov dword [esp + 0x20], edx
cmp dword [esp + 0x104], 0
mov dword [esp + 0x3c], eax
mov dword [esi + 0x2c], eax
jne 0x4516b6
mov eax, dword [esi + 0x28]
mov ecx, ebx
mov dword [esp + 0x5c], 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.00421dad
add esp, 0xc
mov ecx, ebx
push 0
push ebp
push dword [esp + 0x64]
push 0x70
pop edx
call fcn.00421dad
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0xa0], eax
call fcn.004224f5
mov ebp, dword [esp + 0x30]
cmp byte [esi + 0x12], 0
mov ecx, 0x1004
jne 0x45162d
cmp dword [esp + 0x40], 0
jne 0x45162d
cmp dword [esp + 0x34], 0
jne 0x45162d
cmp byte [esp + 0x70], 0
jne 0x45162d
cmp dword [esp + 0x50], 0
lea eax, [ecx + 8]
cmove ecx, eax
push dword [esp + 0x74]
mov edx, dword [esp + 0x64]
push ecx
push 0
push 0
push dword [esp + 0x104]
mov ecx, esi
call fcn.0045afee
mov edx, eax
add esp, 0x14
mov dword [esp + 0x30], edx
test edx, edx
je 0x451f1f
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
movzx edx, byte [edx + 0x31]
mov dword [esp + 0x98], eax
xor eax, eax
inc eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], edx
cmp edx, eax
je 0x451703
cmp dword [esi + 0x6c], 0
mov eax, esi
cmovne eax, dword [esi + 0x6c]
cmp edx, 2
mov edx, dword [esp + 0x18]
mov byte [eax + 0x14], 1
jne 0x451707
test ecx, ecx
js 0x451707
cmp ecx, edx
je 0x451707
mov eax, ecx
mov ecx, dword [esp + 0x68]
sub eax, dword [esp + 0x80]
cmp byte [eax + ecx], 0
je 0x451707
and dword [esp + 0x38], 0
jmp 0x451707
mov ebp, dword [esp + 0x30]
and dword [esp + 0x30], 0
xor eax, eax
push 0x10
push dword [esp + 0x30]
inc eax
push dword [esp + 0xfc]
mov dword [esp + 0x44], eax
push esi
call fcn.00434446
and dword [esp + 0x6c], 0
add esp, 0x10
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x18]
test byte [edi + 0x24], 0x20
jne 0x45175f
mov ebp, dword [esp + 0x24]
mov ecx, ebx
push 0
push ebp
push edx
mov edx, 0x80
call fcn.00421dad
mov edx, dword [esp + 0x44]
add esp, 0xc
test edx, edx
jne 0x45181a
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
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 + 0x98]
mov ecx, ebx
call fcn.00421dad
add esp, 0xc
jmp 0x451816
and dword [esp + 0x6c], 0
movsx ebp, bp
test ebp, ebp
jle 0x45179f
mov esi, dword [esp + 0x6c]
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.00432d32
mov edx, dword [esp + 0x24]
add esp, 0xc
inc esi
cmp esi, ebp
jl 0x45176f
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4517d0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4517bf
mov edx, eax
mov ecx, ebx
call fcn.004223b8
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x94], ebp
mov dword [esp + 0x3c], eax
jmp 0x45181a
mov edx, dword [esp + 0x1c]
push ebp
push ecx
mov ecx, dword [esp + 0x84]
call fcn.004421a3
pop ecx
push eax
push dword [esp + 0x44]
mov ecx, ebx
push ebp
push dword [esp + 0x30]
push 0x5c
pop edx
call fcn.00421eea
add esp, 0x14
mov edx, 0x84
mov ecx, ebx
push ebp
push dword [esp + 0x24]
push dword [esp + 0x44]
push dword [esp + 0x68]
call fcn.00422013
add esp, 0x10
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x104], 0
jne 0x4519e3
cmp edx, 2
je 0x45183a
mov ecx, dword [esp + 0x30]
call fcn.0045b9a7
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x4518e8
xor ebp, ebp
test edx, edx
je 0x4518b3
mov eax, dword [esp + 0x98]
test eax, eax
js 0x451866
sub eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x68]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x44]
test ecx, ecx
js 0x451886
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 0x4518b3
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0xa4]
setns al
sub ecx, eax
test ecx, ecx
jle 0x4518b3
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 0x11
pop edx
call fcn.00421dad
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.0044429e
add esp, 0x18
test ebp, ebp
je 0x4518e4
mov edx, ebp
mov ecx, ebx
call fcn.00422510
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x451951
test eax, eax
jne 0x451924
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x98], eax
je 0x451924
cmp dword [esp + 0x44], eax
je 0x451924
push dword [esp + 0x94]
mov ecx, ebx
push dword [esp + 0x40]
push dword [esp + 0x34]
push eax
push 0x1c
pop edx
call fcn.00422013
add esp, 0x10
xor eax, eax
inc eax
cmp ebp, eax
je 0x451935
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x64], eax
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x24]
cmovne eax, dword [esp + 0x3c]
push 0
push dword [esp + 0x30]
push eax
push 0x32
jmp 0x4519d8
cmp dword [esp + 0x1c], 0
mov ecx, ebx
je 0x4519b1
dec dword [esi + 0x38]
mov ebp, dword [esi + 0x38]
push 0
push dword [esp + 0x30]
mov dword [esp + 0x6c], ebp
push dword [esp + 0x64]
push 0x24
pop edx
call fcn.00421dad
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x40]
push dword [esp + 0x64]
push 0x7f
pop edx
call fcn.00421dad
add esp, 0xc
mov dword [esp + 0xbc], eax
mov ecx, ebx
push 0
push dword [esp + 0x40]
push ebp
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.00422013
add esp, 0x10
jmp 0x4519e3
mov ebp, dword [esp + 0x24]
push ebp
push dword [esp + 0x30]
push dword [esp + 0x98]
push 0x29
pop edx
call fcn.00421dad
add esp, 0xc
mov dword [esp + 0x64], eax
push ebp
push eax
push dword [esp + 0x20]
push 0x1f
pop edx
mov ecx, ebx
call fcn.00421dad
add esp, 0xc
cmp byte [esp + 0x17], 0
je 0x451a0d
mov ebp, dword [esp + 0x58]
mov ecx, esi
mov edx, dword [esp + 0x48]
push ebp
call fcn.00433ded
pop ecx
push 0
push 0
push ebp
push 0xf
pop edx
mov ecx, ebx
call fcn.00421dad
add esp, 0xc
cmp byte [esp + 0x84], 0
mov eax, dword [esp + 0x34]
jne 0x451a29
test eax, eax
jne 0x451a2d
cmp dword [esp + 0x40], eax
je 0x451b13
test eax, eax
je 0x451a3a
mov edx, edi
mov ecx, esi
call fcn.00441965
mov ebp, eax
jmp 0x451a3c
xor ebp, ebp
push dword [esp + 0xf8]
mov edx, dword [esp + 0x44]
mov ecx, esi
push edi
push 3
push 0
push dword [esp + 0x100]
call fcn.00450cc4
or ebp, eax
add esp, 0x14
mov dword [esp + 0x98], ebp
xor eax, eax
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x451aee
mov esi, dword [esp + 0x98]
xor edx, edx
mov dword [esp + 0x44], edx
cmp esi, 0xffffffff
je 0x451ab8
cmp ebp, 0x20
jge 0x451a92
xor eax, eax
mov ecx, ebp
inc eax
shl eax, cl
test esi, eax
jne 0x451ab8
mov eax, dword [edi + 4]
xor ecx, ecx
inc ecx
test byte [eax + edx + 0xf], cl
jne 0x451ab8
mov eax, dword [esp + 0x8c]
mov ecx, ebx
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.00421dad
jmp 0x451ad0
mov eax, dword [esp + 0x8c]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push dword [esp + 0x20]
call fcn.00432d32
mov edx, dword [esp + 0x50]
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
add edx, 0x10
mov dword [esp + 0x44], edx
cmp ebp, eax
jl 0x451a7d
mov esi, dword [esp + 0x88]
cmp byte [esp + 0x17], 0
jne 0x451b13
cmp dword [esp + 0x1c], 0
jne 0x451b13
push 0
push dword [esp + 0x5c]
mov ecx, ebx
push dword [esp + 0x2c]
push 0x4e
pop edx
call fcn.00421dad
add esp, 0xc
push dword [esp + 0xf8]
mov edx, dword [esp + 0x44]
xor eax, eax
push edi
inc eax
mov ecx, esi
push eax
push eax
push dword [esp + 0x100]
call fcn.00450cc4
mov edx, eax
add esp, 0x14
xor eax, eax
mov dword [esp + 0x8c], edx
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x451bda
movsx eax, word [edi + 0x28]
cmp ebp, eax
jne 0x451b6b
mov eax, dword [esp + 0x4c]
mov ecx, ebx
push 0
add eax, ebp
push eax
push 0
push 0x49
pop edx
call fcn.00421dad
jmp 0x451bc3
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebp*4]
test ecx, ecx
js 0x451b95
mov eax, dword [esp + 0x4c]
imul edx, ecx, 0x18
add eax, ebp
push eax
mov eax, dword [esp + 0xf4]
mov ecx, esi
mov edx, dword [edx + eax + 4]
call fcn.00433ded
pop ecx
jmp 0x451bc6
xor eax, eax
inc eax
test dword [esp + 0xa8], eax
je 0x451bae
cmp ebp, 0x1f
jg 0x451bae
mov ecx, ebp
shl eax, cl
test edx, eax
je 0x451b54
mov eax, dword [esp + 0x4c]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push dword [esp + 0x20]
call fcn.00432d32
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
mov edx, dword [esp + 0x8c]
cmp ebp, eax
jl 0x451b4c
xor eax, eax
inc eax
test byte [esp + 0xa8], al
je 0x451ca3
push dword [esp + 0x4c]
mov edx, edi
mov ecx, ebx
call fcn.0044224b
mov ebp, dword [esp + 0x68]
xor eax, eax
mov edx, dword [esp + 0x44]
inc eax
pop ecx
push ebp
push dword [esp + 0xfc]
mov ecx, esi
push dword [esp + 0x2c]
push edi
push eax
push dword [esp + 0x104]
push 0x7d
call fcn.00450c70
add esp, 0x1c
mov ecx, ebx
cmp dword [esp + 0x1c], 0
je 0x451c4a
push dword [esp + 0x94]
push dword [esp + 0x40]
push ebp
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.00422013
add esp, 0x10
jmp 0x451c5e
push dword [esp + 0x24]
push ebp
push dword [esp + 0x20]
push 0x1f
pop edx
call fcn.00421dad
add esp, 0xc
xor eax, eax
xor ebp, ebp
cmp ax, word [edi + 0x2a]
jge 0x451ca3
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp dword [eax + ebp*4], 0
jge 0x451c93
movsx eax, word [edi + 0x28]
cmp ebp, eax
je 0x451c93
mov eax, dword [esp + 0x4c]
mov edx, edi
add eax, ebp
mov ecx, ebx
push eax
push ebp
push esi
call fcn.00432d32
add esp, 0xc
movsx eax, word [edi + 0x2a]
inc ebp
cmp ebp, eax
jl 0x451c6c
mov esi, dword [esp + 0x88]
cmp dword [esp + 0x78], 0
mov ebp, dword [esp + 0x64]
jne 0x451e1c
push 0
push dword [esp + 0x2c]
lea eax, [esp + 0x58]
mov edx, edi
push eax
push ebp
push dword [esp + 0x108]
mov ecx, esi
push dword [esp + 0x84]
push dword [esp + 0x3c]
push dword [esp + 0x74]
push dword [esp + 0x94]
push dword [esp + 0x3c]
push dword [esp + 0x7c]
call fcn.0044354b
add esp, 0x2c
cmp dword [esp + 0x50], 0
jne 0x451cfd
cmp byte [esp + 0x70], 0
je 0x451d37
cmp dword [esp + 0x1c], 0
mov ecx, ebx
je 0x451d23
push dword [esp + 0x94]
push dword [esp + 0x40]
push ebp
push dword [esp + 0x24]
push 0x1c
pop edx
call fcn.00422013
add esp, 0x10
jmp 0x451d37
push dword [esp + 0x24]
push ebp
push dword [esp + 0x20]
push 0x1f
pop edx
call fcn.00421dad
add esp, 0xc
cmp dword [esp + 0x34], 0
je 0x451d5b
push dword [esp + 0xac]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push 0
push dword [esp + 0x30]
call fcn.00441532
add esp, 0x10
push 0xffffffffffffffff
push dword [esp + 0x58]
mov edx, edi
mov ecx, esi
push dword [esp + 0x7c]
push dword [esp + 0x24]
call fcn.0043e885
mov eax, dword [esp + 0x44]
xor ecx, ecx
inc ecx
add esp, 0x10
cmp eax, ecx
jg 0x451d87
cmp byte [esp + 0x70], 0
je 0x451da0
push 0
push 0
push dword [esp + 0x20]
mov ecx, ebx
push 0x7b
pop edx
call fcn.00421dad
mov eax, dword [esp + 0x40]
add esp, 0xc
test eax, eax
je 0x451dc1
push dword [esp + 0xac]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x60]
push 0
call fcn.00441532
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 + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x88]
push dword [esp + 0x30]
call fcn.00444136
add esp, 0x1c
cmp dword [esp + 0x34], 0
je 0x451e1c
push dword [esp + 0xac]
mov edx, edi
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0xfc]
call fcn.0044204c
add esp, 0x10
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x451e3b
xor ecx, ecx
push 0
inc ecx
push ecx
push eax
push 0x53
pop edx
mov ecx, ebx
call fcn.00421dad
add esp, 0xc
mov edx, dword [esp + 0x40]
mov ecx, esi
push ebp
push dword [esp + 0xfc]
push dword [esp + 0x2c]
push edi
push 2
push dword [esp + 0x104]
push 0x7d
call fcn.00450c70
mov eax, dword [esp + 0x54]
xor ecx, ecx
inc ecx
add esp, 0x1c
cmp eax, ecx
je 0x451eb2
mov edx, ebp
mov ecx, ebx
cmp eax, 2
jne 0x451e85
call fcn.004220ac
mov ecx, dword [esp + 0x30]
call fcn.0045b9a7
jmp 0x451eb2
cmp dword [esp + 0x1c], 0
je 0x451ead
call fcn.004220ac
push 0
push dword [esp + 0xc0]
mov ecx, ebx
push dword [esp + 0x64]
push 5
pop edx
call fcn.00421dad
add esp, 0xc
jmp 0x451eb2
call fcn.00421e2a
mov edx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.004220ac
cmp byte [esi + 0x12], 0
jne 0x451ee0
cmp dword [esi + 0x70], 0
jne 0x451ee0
cmp dword [esp + 0x104], 0
jne 0x451ee0
cmp dword [esi + 0x68], 0
je 0x451ee0
mov ecx, esi
call fcn.004424e2
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x451f1f
xor ecx, ecx
push 0
inc ecx
push ecx
push eax
push 0x51
pop edx
mov ecx, ebx
call fcn.00421dad
xor eax, eax
add esp, 0xc
mov ecx, ebx
lea edx, [eax + 1]
call fcn.004230be
push 0
push str.rows_updated
push ecx
xor edx, edx
mov ecx, ebx
call fcn.0042311a
add esp, 0xc
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x451f37
mov ecx, dword [esp + 0xb4]
mov dword [eax + 0xe8], ecx
mov ebx, dword [esp + 0x7c]
mov ecx, ebx
mov edx, dword [esp + 0x28]
call fcn.0040b163
mov edx, dword [esp + 0x60]
mov ecx, ebx
call fcn.0043cc3d
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x451f65
mov edx, eax
mov ecx, ebx
call fcn.00431549
mov edx, dword [esp + 0xf4]
mov ecx, ebx
call fcn.004309f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdc
ret