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

Disassembly:
sub esp, 0xdc
or dword [esp + 0x68], 0xffffffff
lea eax, [esp + 0xb0]
xor ecx, ecx
mov dword [esp + 0x94], 1
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xf0]
mov ebx, ecx
push 8
push ecx
push eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x58], ecx
call sub.VCRUNTIME140.dll_memset
mov ebp, dword [edi]
add esp, 0xc
mov dword [esp + 0x34], ebp
cmp dword [edi + 0x24], ebx
jne 0x57ac4a
push dword [esp + 0xf4]
push edi
call fcn.00577a16
mov ebp, eax
mov dword [esp + 0x64], ebp
pop ecx
pop ecx
test ebp, ebp
je 0x579abc
push dword [ebp + 0x3c]
push dword [edi]
call fcn.0057526e
mov esi, dword [esp + 0x100]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa8]
push eax
push esi
push 0x81
push ebp
push edi
call fcn.00579321
mov dword [esp + 0x74], eax
add esp, 0x1c
mov al, byte [ebp + 0x2b]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0xf4]
cmp dword [eax], 1
jle 0x5796c8
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
jmp 0x5796cc
and dword [esp + 0x2c], ebx
push ebp
push edi
call fcn.00585534
pop ecx
pop ecx
test eax, eax
jne 0x579ac3
push dword [esp + 0x58]
push ebp
push edi
call fcn.0056bd0a
add esp, 0xc
test eax, eax
jne 0x579ac3
mov ebx, dword [edi + 0x28]
mov edx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x90], edx
lea eax, [ebx + 1]
mov dword [edi + 0x28], eax
test byte [ebp + 0x1c], 0x80
mov dword [esp + 0x7c], eax
jne 0x57971a
and dword [esp + 0x30], 0
jmp 0x57972c
push ebp
call fcn.00572edd
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
pop ecx
mov ecx, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0xa8], esi
test ecx, ecx
je 0x579767
mov edx, eax
cmp dword [esp + 0x30], ecx
mov eax, edx
cmovne eax, ebx
inc edx
mov dword [edi + 0x28], edx
inc esi
mov ecx, dword [ecx + 0x14]
mov ebx, eax
test ecx, ecx
jne 0x57973e
mov edx, dword [esp + 0x90]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x579783
mov ebx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x7c], eax
mov dword [edi + 0x28], edx
mov eax, dword [esp + 0xf4]
push 0
mov dword [eax + 0x34], ebx
movsx eax, word [ebp + 0x22]
add eax, esi
lea eax, [eax*4 + 6]
add eax, esi
push eax
push dword [esp + 0x3c]
call fcn.00560346
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x579abc
movsx eax, word [ebp + 0x22]
lea eax, [ebx + eax*4]
lea ebx, [eax + 4]
mov dword [esp + 0x68], eax
lea eax, [esi + 1]
push eax
lea ebx, [ebx + esi*4]
push 1
push ebx
mov dword [esp + 0x8c], ebx
call sub.VCRUNTIME140.dll_memset
mov byte [ebx + esi + 1], 0
xor eax, eax
mov ebx, dword [esp + 0x24]
add esp, 0xc
xor ecx, ecx
cmp ax, word [ebp + 0x22]
jge 0x579800
or dword [ebx + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebp + 0x22]
cmp ecx, eax
jl 0x5797f3
push 0x24
lea eax, [esp + 0xcc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x118]
push edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], 0x200
call fcn.0056a013
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
je 0x579abc
mov ecx, dword [esp + 0xf8]
xor ebx, ebx
xor al, al
mov dword [esp + 0x40], ebx
xor dh, dh
mov byte [esp + 0x2b], al
mov byte [esp + 0x12], dh
cmp dword [ecx], ebx
jle 0x579a2d
lea esi, [ecx + 8]
mov dword [esp + 0x20], esi
push dword [esi + 4]
call fcn.005781e7
cmp dword [esp + 0x30], 0
pop ecx
mov cl, al
mov byte [esp + 0x4b], cl
jne 0x5798af
push dword [esi]
lea eax, [esp + 0xcc]
push eax
call fcn.0057419b
pop ecx
pop ecx
test eax, eax
jne 0x579ab8
mov cl, byte [esp + 0x4b]
movsx eax, word [ebp + 0x22]
xor esi, esi
test eax, eax
jle 0x5798e9
mov ebx, dword [ebp + 4]
cmp byte [ebx + 0xa], cl
jne 0x5798dd
mov eax, dword [esp + 0x20]
push dword [eax + 4]
push dword [ebx]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x579945
movsx eax, word [ebp + 0x22]
mov cl, byte [esp + 0x4b]
inc esi
add ebx, 0x10
cmp esi, eax
jl 0x5798bc
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0x12]
mov dword [esp + 0x78], eax
movsx eax, word [ebp + 0x22]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
cmp esi, eax
jl 0x5799a4
cmp dword [esp + 0x30], 0
jne 0x579b2f
mov eax, dword [esp + 0x20]
push dword [eax + 4]
call fcn.0056bd8b
pop ecx
test eax, eax
je 0x579b2f
mov eax, dword [esp + 0x20]
or esi, 0xffffffff
mov byte [esp + 0x12], 1
mov dword [esp + 0x78], ebx
mov eax, dword [eax]
mov dword [esp + 0x60], eax
jmp 0x5799a8
movsx eax, word [ebp + 0x20]
cmp esi, eax
jne 0x579966
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
mov byte [esp + 0x12], 1
mov dword [esp + 0x78], ebx
mov eax, dword [eax]
mov dword [esp + 0x60], eax
jmp 0x579998
cmp dword [esp + 0x30], 0
je 0x579982
mov eax, dword [ebp + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 1
je 0x579982
mov byte [esp + 0x2b], 1
jmp 0x579994
mov eax, dword [ebp + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
jne 0x579aa8
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov dword [eax + esi*4], ebx
jmp 0x5798e9
test esi, esi
jns 0x5799af
mov edx, str.ROWID
jmp 0x5799d1
mov eax, dword [ebp + 4]
mov ecx, esi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x78], eax
mov al, byte [esp + 0x12]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
push dword [ebp]
push 0x17
push edi
call fcn.00559d89
add esp, 0x14
cmp eax, 1
je 0x579ab8
cmp eax, 2
jne 0x579a06
mov eax, dword [esp + 0x18]
or dword [eax + esi*4], 0xffffffff
mov eax, dword [esp + 0xf8]
inc ebx
mov esi, dword [esp + 0x20]
add esi, 0x14
mov dword [esp + 0x40], ebx
mov dword [esp + 0x20], esi
cmp ebx, dword [eax]
jl 0x57987c
mov dh, byte [esp + 0x12]
mov al, byte [esp + 0x2b]
mov dl, al
add dl, dh
test byte [ebp + 0x1c], 0x60
mov byte [esp + 0x50], dl
je 0x579b7f
mov edi, dword [esp + 0x18]
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x70], ecx
cmp ax, word [ebp + 0x22]
jge 0x579b74
xor ebx, ebx
cmp dword [edi + esi*4], 0
jge 0x579b5c
mov ecx, dword [ebp + 4]
add ecx, ebx
test byte [ecx + 0xe], 0x60
je 0x579b58
movzx eax, dh
push eax
push edi
push ecx
push ebp
call fcn.0055e30b
pop ecx
pop ecx
push eax
call fcn.0056599f
mov dh, byte [esp + 0x1e]
add esp, 0xc
test eax, eax
je 0x579b58
xor ecx, ecx
mov dword [edi + esi*4], 0x1869f
inc ecx
mov dword [esp + 0x70], ecx
jmp 0x579b5c
push dword [ebx]
push str.cannot_UPDATE_generated_column___s_
push edi
call fcn.00561f37
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0xf8]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x579ae7
mov eax, dword [esp + 0xc0]
mov dword [ecx + 0x104], eax
and dword [esp + 0xc4], 0
test ebx, ebx
je 0x579af4
push ebx
push ebp
call fcn.00560283
pop ecx
pop ecx
push dword [esp + 0xf4]
push ebp
call fcn.0057762b
pop ecx
pop ecx
test esi, esi
je 0x579b10
push esi
push ebp
call fcn.005408da
pop ecx
pop ecx
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x579b24
push eax
push ebp
call fcn.0056485a
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdc
ret
mov esi, dword [esp + 0xf8]
imul eax, ebx, 0x14
push dword [eax + esi + 0xc]
push str.no_such_column:__s
push edi
call fcn.00561f37
mov ebx, dword [esp + 0x24]
add esp, 0xc
mov byte [edi + 0x11], 1
jmp 0x579ac3
mov ecx, dword [esp + 0x70]
movsx eax, word [ebp + 0x22]
inc esi
add ebx, 0x10
cmp esi, eax
jl 0x579a59
test ecx, ecx
jne 0x579a43
mov edi, dword [esp + 0xf0]
mov dl, byte [esp + 0x50]
cmp byte [ebp + 0x2b], 1
jne 0x579b8d
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x579b9e
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0xf4]
mov dword [ebx + 0x40], eax
movzx eax, dl
push eax
push dword [esp + 0x1c]
mov dword [ebx + 0x44], ecx
push ebp
push edi
call fcn.00567537
add esp, 0x10
mov dword [esp + 0x44], eax
cmp dword [esp + 0x100], 5
jne 0x579bd6
mov dword [esp + 0x88], 1
and dword [esp + 0x8c], 0
mov esi, dword [ebp + 8]
test esi, esi
je 0x579ce0
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x44]
inc ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x50], 0
jne 0x579d73
cmp ebp, 1
jg 0x579d73
cmp esi, dword [esp + 0x30]
je 0x579d73
cmp dword [esi + 0x24], 0
je 0x579c42
movzx eax, byte [esp + 0x12]
push eax
push dword [esp + 0x1c]
push dword [esi + 0x24]
call fcn.0056599f
mov edx, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jne 0x579d73
xor ecx, ecx
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x40], ecx
cmp ax, word [esi + 0x32]
jae 0x579caa
mov dword [esp + 0x70], ecx
mov eax, dword [esi + 4]
movzx eax, word [eax + ebx*2]
test ax, ax
js 0x579c6d
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x579c8e
movzx eax, byte [esp + 0x12]
push eax
mov eax, dword [esi + 0x28]
push dword [esp + 0x1c]
push dword [eax + ecx + 8]
call fcn.0056599f
mov ecx, dword [esp + 0x7c]
add esp, 0xc
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x579d42
movzx eax, word [esi + 0x32]
inc ebx
add ecx, 0x14
mov dword [esp + 0x70], ecx
cmp ebx, eax
jl 0x579c56
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
mov byte [ebx], 0
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x68]
mov dword [ebp + eax*4], ecx
inc eax
mov esi, dword [esi + 0x14]
inc ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x20], ebx
test esi, esi
jne 0x579bfd
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x8c]
lea esi, [edi + 0x2c]
mov eax, dword [esi]
mov edx, dword [esp + 0x68]
inc eax
mov dword [esi], eax
mov dword [edx + ecx*4], eax
cmp dword [esp + 0x88], 0
je 0x579d1a
mov eax, dword [esp + 0xa8]
inc eax
push eax
push 1
push dword [esp + 0x88]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp byte [edi + 0x12], 0
jne 0x579d2e
mov eax, dword [esp + 0x14]
lea esi, [edi + 0x2c]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x58], 0
mov ebx, esi
jne 0x579d93
cmp dword [esp + 0x44], 0
jne 0x579d90
xor eax, eax
jmp 0x579d96
mov ecx, dword [edi + 0x2c]
mov ebx, dword [esp + 0x20]
inc ecx
mov dword [edi + 0x2c], ecx
movzx eax, word [esi + 0x34]
add eax, ecx
cmp dword [esp + 0x100], 0xb
mov dword [edi + 0x2c], eax
jne 0x579d83
cmp byte [esi + 0x36], 5
jne 0x579d83
mov dword [esp + 0x88], 1
jmp 0x579d83
mov ecx, dword [edi + 0x2c]
inc ecx
mov dword [edi + 0x2c], ecx
movzx eax, word [esi + 0x34]
add eax, ecx
mov dword [edi + 0x2c], eax
test ecx, ecx
jne 0x579cb1
jmp 0x579cae
lea ebx, [edi + 0x2c]
xor eax, eax
inc eax
push dword [esp + 0x24]
push eax
push edi
call fcn.0055a6a1
add esp, 0xc
cmp byte [ebp + 0x2b], 1
je 0x579e32
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x68]
mov edx, dword [edi + 0x2c]
inc edx
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x64], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x9c], eax
mov dword [esi], edx
mov dword [esp + 0x38], edx
jne 0x579deb
cmp dword [esp + 0x58], 0
mov esi, ebx
jne 0x579deb
mov eax, dword [esp + 0x44]
mov ecx, edx
test eax, eax
je 0x579e03
movsx ecx, word [ebp + 0x22]
lea eax, [edx + 1]
mov ebx, esi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x44]
add ecx, edx
mov dword [ebx], ecx
cmp byte [esp + 0x50], 0
jne 0x579e15
cmp dword [esp + 0x58], 0
jne 0x579e15
test eax, eax
je 0x579e20
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
mov ecx, eax
mov dword [ebx], eax
lea eax, [ecx + 1]
mov dword [esp + 0x84], eax
movsx eax, word [ebp + 0x22]
add eax, ecx
mov dword [ebx], eax
mov al, byte [esp + 0x13]
cmp al, 2
jne 0x579e5b
mov ecx, dword [ebp]
mov eax, dword [edi + 0x104]
mov dword [esp + 0xc0], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0xc4], edi
mov dword [edi + 0x104], ecx
cmp dword [esp + 0x2c], 0
jne 0x579ec5
cmp al, 2
jne 0x579e92
push dword [esp + 0x1c]
mov esi, dword [esp + 0x100]
push dword [esp + 0x10c]
push dword [esp + 0x10c]
push esi
push ebp
push edi
call fcn.0056cf69
xor ebx, ebx
add esp, 0x18
and dword [esp + 0x24], ebx
jmp 0x579eab
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xfc]
lea eax, [esp + 0xc8]
push esi
push eax
call fcn.0057419b
pop ecx
pop ecx
test eax, eax
jne 0x579ab8
jmp 0x579ede
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0x104]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x24], eax
cmp byte [ebp + 0x2b], 1
jne 0x579f13
push dword [esp + 0x100]
mov ebx, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x100]
push ebx
push dword [esp + 0x6c]
push esi
push ebp
push dword [esp + 0x10c]
push edi
call fcn.0058d8ad
add esp, 0x20
jmp 0x579ac3
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x579f75
cmp dword [edi + 0x84], 0
jne 0x579f75
cmp byte [edi + 0x12], 0
jne 0x579f75
cmp byte [edi + 0x9f], 0
jne 0x579f75
cmp dword [esp + 0x10c], 0
mov esi, dword [esp + 0x14]
jne 0x579f79
mov eax, dword [edi + 0x2c]
inc eax
push eax
push 0
push 0x47
push esi
mov dword [esp + 0xc4], eax
mov dword [edi + 0x2c], eax
call fcn.0057b76b
add esp, 0x10
jmp 0x579f79
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x2c], 0
jne 0x57a06b
test byte [ebp + 0x1c], 0x80
jne 0x57a06b
push dword [esp + 0x38]
mov ebx, dword [esp + 0xa0]
push ebx
push 0
push 0x4b
push esi
call fcn.0057b786
mov ecx, dword [edi + 0x28]
push ebx
push 0
push ecx
lea eax, [ecx + 1]
mov dword [esp + 0x5c], ecx
push 0x76
push esi
mov dword [edi + 0x28], eax
call fcn.0057b786
add esp, 0x28
mov ebx, eax
cmp dword [esp + 0x10c], 0
mov dword [esp + 0x70], ebx
je 0x57a189
mov ecx, dword [esp + 0xfc]
and dword [esp + 0x98], 0
push 0x10
push dword [esp + 0x44]
mov dword [esp + 0x2c], 1
push ecx
push edi
call fcn.00564a78
add esp, 0x10
and dword [esp + 0xa4], 0
mov ecx, dword [esp + 0x1c]
test byte [ebp + 0x1c], 0x80
jne 0x57a2e5
push dword [esp + 0x38]
push ecx
push 0x87
push esi
call fcn.0057b76b
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
jne 0x57a2cf
push dword [esp + 0x38]
mov eax, dword [edi + 0x2c]
push dword [esp + 0xa0]
mov ecx, dword [esp + 0x94]
inc eax
push dword [esp + 0x44]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x20]
push 0x80
mov dword [edi + 0x2c], eax
push ebx
mov dword [edx + ecx*4], eax
call fcn.0057b786
add esp, 0x14
jmp 0x57a3a5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x57a079
movzx ecx, word [eax + 0x32]
jmp 0x57a07b
xor ecx, ecx
mov eax, dword [edi + 0x2c]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
inc ebp
movsx ecx, cx
lea edx, [eax + 1]
add eax, ecx
add eax, ebp
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x10c], 0
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
mov dword [edi + 0x2c], eax
jne 0x57a27c
cmp byte [esp + 0x13], 2
jne 0x57a0bb
movsx eax, word [ebp + 0x22]
jmp 0x57a0bd
xor eax, eax
lea esi, [eax + ecx]
mov eax, dword [edi + 0x28]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
inc eax
cmp dword [esp + 0x30], 0
mov dword [edi + 0x28], eax
je 0x57a0ed
lea eax, [ecx - 1]
add eax, edx
push eax
push edx
push 0
push 0x4b
push dword [esp + 0x24]
call fcn.0057b786
add esp, 0x14
push esi
push dword [esp + 0x40]
push 0x76
push dword [esp + 0x20]
call fcn.0057b76b
mov dword [esp + 0x80], eax
add esp, 0x10
mov eax, dword [esp + 0x30]
test eax, eax
je 0x57a132
push eax
push edi
call fcn.0056c0b3
pop ecx
pop ecx
test eax, eax
je 0x57a138
push 0xfffffffffffffff8
mov word [eax + 8], si
mov esi, dword [esp + 0x18]
push eax
push esi
call fcn.0057ba0b
add esp, 0xc
jmp 0x57a13c
mov esi, dword [esp + 0x14]
jmp 0x57a140
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], 0
je 0x57a185
push dword [esp + 0x24]
mov ecx, dword [esp + 0x100]
push ebx
mov ebx, dword [esp + 0x44]
push ecx
push dword [esp + 0x100]
push dword [esp + 0x108]
push eax
push ebx
push edi
call fcn.0058d679
add esp, 0x20
cmp byte [esp + 0x13], 2
jne 0x57a299
mov dword [esp + 0x1c], ebx
jmp 0x57a299
mov ebx, dword [esp + 0x70]
cmp byte [edi + 0x12], 0
mov ecx, dword [esp + 0xfc]
push 4
pop eax
jne 0x57a1c8
cmp dword [esp + 0x58], 0
jne 0x57a1c8
cmp dword [esp + 0x44], 0
jne 0x57a1c8
cmp byte [esp + 0x50], 0
jne 0x57a1c8
cmp dword [esp + 0x88], 0
jne 0x57a1c8
test ecx, ecx
je 0x57a1c5
test dword [ecx + 4], 0x400000
jne 0x57a1c8
push 0xc
pop eax
push dword [esp + 0x7c]
push eax
xor eax, eax
push eax
push eax
push eax
push ecx
push dword [esp + 0x10c]
push edi
call fcn.005869fa
add esp, 0x20
mov dword [esp + 0x98], eax
test eax, eax
je 0x579ab8
lea ecx, [esp + 0xb8]
push ecx
push eax
call fcn.00589df4
mov edx, eax
mov eax, dword [esp + 0xa0]
pop ecx
pop ecx
mov dword [esp + 0x24], edx
mov eax, dword [eax + 0x30]
and eax, 1
mov dword [esp + 0xa4], eax
cmp edx, 1
je 0x57a003
mov eax, dword [edi + 0x80]
mov ecx, edi
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp edx, 2
jne 0x57a003
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1c]
test eax, eax
js 0x57a007
cmp eax, ecx
je 0x57a007
sub eax, dword [esp + 0x90]
mov edx, dword [esp + 0x80]
cmp byte [eax + edx], 0
je 0x57a007
and dword [esp + 0x24], 0
jmp 0x57a007
and dword [esp + 0x3c], 0
xor ebx, ebx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x2c], ebx
je 0x579fd4
mov eax, dword [edi + 0x80]
mov ecx, edi
test eax, eax
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0x24], eax
mov byte [ecx + 0x14], 1
mov ecx, dword [esp + 0x54]
movsx edx, cx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x94], edx
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x14]
jmp 0x57a3a9
test ebx, ebx
je 0x57a2c6
push ebx
mov ebx, dword [esp + 0x18]
push ebx
call fcn.0057bb47
pop ecx
pop ecx
jmp 0x57a3a5
mov edx, dword [esp + 0x54]
xor esi, esi
movsx ebx, dx
test ebx, ebx
jle 0x57a328
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
add eax, esi
push eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
push ebp
push edi
call fcn.00562c0e
mov ecx, dword [esp + 0x30]
add esp, 0x14
inc esi
cmp esi, ebx
jl 0x57a2f6
mov edi, dword [esp + 0xf0]
mov edx, dword [esp + 0x54]
cmp dword [esp + 0x24], 0
je 0x57a35c
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x57a344
push eax
push ebx
call fcn.0057bb47
pop ecx
pop ecx
mov ecx, dword [esp + 0x54]
movsx eax, cx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], eax
jmp 0x57a3a5
movsx esi, dx
push esi
push dword [esp + 0x34]
push dword [esp + 0x3c]
call fcn.0056a457
mov ebx, dword [esp + 0x20]
pop ecx
pop ecx
push eax
push dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x7c]
push esi
push 0x61
push ebx
call fcn.0057b7e0
mov ecx, dword [esp + 0x70]
movsx eax, cx
push eax
push esi
push dword [esp + 0x70]
push dword [esp + 0x64]
push 0x8a
push ebx
call fcn.0057b858
add esp, 0x34
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x10c], 0
jne 0x57a637
cmp dword [esp + 0x2c], 0
jne 0x57a3d0
cmp eax, 2
je 0x57a3d0
push dword [esp + 0x98]
call fcn.005890e9
pop ecx
cmp byte [esp + 0x13], 2
je 0x57a47b
mov ecx, dword [esp + 0x24]
xor esi, esi
test ecx, ecx
je 0x57a442
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x80]
test eax, eax
js 0x57a402
sub eax, dword [esp + 0x90]
mov byte [eax + edx], 0
mov eax, dword [esp + 0xbc]
test eax, eax
js 0x57a418
sub eax, dword [esp + 0x90]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x57a442
mov ecx, dword [esp + 0xa8]
xor eax, eax
cmp dword [esp + 0xbc], eax
setge al
sub ecx, eax
test ecx, ecx
jle 0x57a442
push 0xf
push ebx
call fcn.0057b73c
pop ecx
pop ecx
mov esi, eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xa0]
push eax
push dword [esp + 0x88]
push dword [esp + 0x9c]
push 0
push 0x71
push ebp
push edi
call fcn.0056d5e5
add esp, 0x20
test esi, esi
je 0x57a47b
push esi
push ebx
call fcn.00582d53
pop ecx
pop ecx
mov esi, dword [esp + 0x24]
test esi, esi
je 0x57a4e7
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0xb8], eax
je 0x57a4b4
cmp dword [esp + 0xbc], eax
je 0x57a4b4
push dword [esp + 0x94]
push dword [esp + 0x50]
push dword [esp + 0x48]
push eax
push 0x1c
push ebx
call fcn.0057b858
add esp, 0x18
cmp esi, 1
je 0x57a4c4
mov eax, dword [edi + 0x38]
dec eax
mov dword [esp + 0x20], eax
mov dword [edi + 0x38], eax
push dword [esp + 0x40]
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x3c]
cmovne eax, dword [esp + 0x50]
push eax
push 0x32
push ebx
call fcn.0057b76b
add esp, 0x10
jmp 0x57a637
cmp dword [esp + 0x30], 0
jne 0x57a543
cmp dword [esp + 0x2c], 0
jne 0x57a543
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0x24
push ebx
call fcn.0057b76b
push dword [esp + 0x48]
mov esi, dword [edi + 0x38]
push dword [esp + 0x50]
dec esi
push 0x87
push ebx
mov dword [esp + 0x40], esi
mov dword [edi + 0x38], esi
call fcn.0057b76b
push dword [esp + 0x58]
mov dword [esp + 0xd4], eax
push esi
push dword [esp + 0x44]
push 0x1f
push ebx
call fcn.0057b786
add esp, 0x34
jmp 0x57a637
push dword [esp + 0x40]
mov esi, dword [edi + 0x38]
push dword [esp + 0x40]
dec esi
push 0x24
push ebx
mov dword [esp + 0x30], esi
mov dword [edi + 0x38], esi
call fcn.0057b76b
mov eax, dword [ebx + 0x6c]
add esp, 0x10
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x57a60e
cmp byte [esp + 0x13], 2
je 0x57a63b
cmp dword [esp + 0x30], 0
je 0x57a5e5
mov eax, dword [esp + 0x54]
xor esi, esi
movsx ebx, ax
test ebx, ebx
jle 0x57a5c6
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x6c]
add eax, esi
push eax
push esi
push ebp
push 0x5e
push edi
call fcn.0057b786
add esp, 0x14
inc esi
cmp esi, ebx
jl 0x57a59e
mov edi, dword [esp + 0xf0]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
cwde
push eax
push dword [esp + 0x70]
push dword [esp + 0x28]
push dword [esp + 0x28]
push 0x1c
push ebx
call fcn.0057b858
add esp, 0x18
jmp 0x57a637
push dword [esp + 0x38]
push dword [esp + 0x40]
push 0x87
push ebx
call fcn.0057b76b
push dword [esp + 0x48]
push esi
push dword [esp + 0x34]
push 0x1f
push ebx
call fcn.0057b786
add esp, 0x24
jmp 0x57a637
push dword [esp + 0x4c]
push dword [esp + 0x40]
push 0x86
push ebx
call fcn.0057b76b
push 0
push dword [esp + 0x60]
push esi
push dword [esp + 0x38]
push 0x1c
push ebx
call fcn.0057b858
add esp, 0x28
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0x12], 0
je 0x57a679
mov esi, dword [esp + 0x64]
push esi
test eax, eax
jne 0x57a65a
push dword [esp + 0x64]
push edi
call fcn.00562913
add esp, 0xc
jmp 0x57a66d
push dword [esp + 0x7c]
push dword [esp + 0x44]
push 0x5e
push ebx
call fcn.0057b786
add esp, 0x14
push esi
push 0xd
push ebx
call fcn.0057b752
add esp, 0xc
cmp byte [esp + 0x2b], 0
mov eax, dword [esp + 0x44]
jne 0x57a692
test eax, eax
jne 0x57a696
cmp dword [esp + 0x58], eax
je 0x57a76b
test eax, eax
je 0x57a6a3
push ebp
push edi
call fcn.0056744e
pop ecx
pop ecx
mov ebx, eax
jmp 0x57a6a5
xor ebx, ebx
push dword [esp + 0x100]
push ebp
push 3
push 0
push dword [esp + 0x108]
push dword [esp + 0x6c]
push edi
call fcn.00578924
or ebx, eax
add esp, 0x1c
xor eax, eax
xor esi, esi
cmp ax, word [ebp + 0x22]
jge 0x57a747
xor edi, edi
mov eax, dword [ebp + 4]
push esi
push ebp
movzx eax, word [eax + edi + 0xe]
mov dword [esp + 0x64], eax
call fcn.005786ff
movsx edx, ax
add edx, dword [esp + 0xb4]
pop ecx
pop ecx
cmp ebx, 0xffffffff
je 0x57a721
cmp esi, 0x20
jge 0x57a707
xor eax, eax
mov ecx, esi
inc eax
shl eax, cl
test ebx, eax
jne 0x57a721
test byte [esp + 0x5c], 1
jne 0x57a721
push edx
push 0
push 0x4b
push dword [esp + 0x20]
call fcn.0057b76b
add esp, 0x10
jmp 0x57a734
push edx
push esi
push dword [esp + 0x24]
push ebp
push dword [esp + 0x24]
call fcn.00562c0e
add esp, 0x14
movsx eax, word [ebp + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x57a6d3
mov edi, dword [esp + 0xf0]
cmp byte [esp + 0x12], 0
jne 0x57a76b
cmp dword [esp + 0x30], 0
jne 0x57a76b
push dword [esp + 0x64]
push dword [esp + 0x3c]
push 0x50
push dword [esp + 0x20]
call fcn.0057b76b
add esp, 0x10
push dword [esp + 0x100]
push ebp
push 1
push 1
push dword [esp + 0x108]
push dword [esp + 0x6c]
push edi
call fcn.00578924
movzx ecx, word [ebp + 0x22]
xor edx, edx
add esp, 0x1c
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x84]
xor ebx, ebx
mov esi, eax
cmp dx, cx
jge 0x57a8a3
mov edx, ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
movsx eax, word [ebp + 0x20]
cmp ebx, eax
je 0x57a854
mov eax, dword [ebp + 4]
movzx eax, word [eax + ecx + 0xe]
test al, 0x60
je 0x57a7da
test al, 0x20
je 0x57a882
dec esi
jmp 0x57a882
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
js 0x57a832
cmp dword [esp + 0x2c], 0
je 0x57a818
cmp byte [esp + 0x13], 2
jne 0x57a7f8
movzx eax, dx
jmp 0x57a7ff
mov eax, dword [esp + 0x54]
movzx eax, ax
push esi
cwde
add eax, ecx
push eax
push dword [esp + 0x44]
push 0x5e
push dword [esp + 0x24]
call fcn.0057b786
add esp, 0x14
jmp 0x57a882
imul eax, ecx, 0x14
mov ecx, dword [esp + 0xf8]
push esi
push dword [eax + ecx + 8]
push edi
call fcn.00562913
add esp, 0xc
jmp 0x57a882
test dword [esp + 0xa0], 1
je 0x57a867
cmp ebx, 0x1f
jg 0x57a867
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
test dword [esp + 0xac], eax
jne 0x57a867
push esi
push 0
push 0x4b
push dword [esp + 0x20]
call fcn.0057b76b
add esp, 0x10
jmp 0x57a882
push esi
push ebx
push dword [esp + 0x24]
push ebp
push dword [esp + 0x24]
call fcn.00562c0e
add esp, 0x14
and dword [esp + 0xa4], 0
movzx eax, word [ebp + 0x22]
inc ebx
add dword [esp + 0x5c], 0x10
mov edx, eax
mov ecx, dword [esp + 0x5c]
inc esi
cwde
cmp ebx, eax
jl 0x57a7b4
mov eax, dword [esp + 0x84]
test byte [ebp + 0x1c], 0x60
je 0x57a8b4
push ebp
push eax
push edi
call fcn.0055e8fe
add esp, 0xc
test byte [esp + 0xa0], 1
je 0x57a9db
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x14]
push eax
push ebp
push ebx
call fcn.00578580
mov esi, dword [esp + 0x2c]
push esi
push dword [esp + 0x110]
push dword [esp + 0x4c]
push ebp
push 1
push dword [esp + 0x118]
push 0x81
push dword [esp + 0x80]
push edi
call fcn.0055de02
add esp, 0x30
cmp byte [esp + 0x13], 2
je 0x57ab76
cmp dword [esp + 0x30], 0
je 0x57a933
push dword [esp + 0x94]
push dword [esp + 0x50]
push esi
push dword [esp + 0x28]
push 0x1c
push ebx
call fcn.0057b858
add esp, 0x18
jmp 0x57a947
push dword [esp + 0x38]
push esi
push dword [esp + 0x24]
push 0x1f
push ebx
call fcn.0057b786
add esp, 0x14
mov eax, dword [esp + 0x84]
xor ecx, ecx
xor esi, esi
mov ebx, eax
cmp cx, word [ebp + 0x22]
jge 0x57a9c8
mov edi, dword [esp + 0x14]
mov dword [esp + 0xa0], ecx
mov eax, dword [ebp + 4]
movzx eax, word [eax + ecx + 0xe]
test al, 0x60
je 0x57a97d
test al, 0x20
lea eax, [ebx - 1]
cmove eax, ebx
mov ebx, eax
jmp 0x57a9a6
mov eax, dword [esp + 0x18]
cmp dword [eax + esi*4], 0
jge 0x57a9a6
movsx eax, word [ebp + 0x20]
cmp esi, eax
je 0x57a9a6
push ebx
push esi
push dword [esp + 0x24]
push ebp
push edi
call fcn.00562c0e
mov ecx, dword [esp + 0xb4]
add esp, 0x14
movsx eax, word [ebp + 0x22]
add ecx, 0x10
inc esi
mov dword [esp + 0xa0], ecx
inc ebx
cmp esi, eax
jl 0x57a965
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0x84]
test byte [ebp + 0x1c], 0x60
je 0x57a9e6
push ebp
push eax
push edi
call fcn.0055e8fe
add esp, 0xc
jmp 0x57a9e6
cmp byte [esp + 0x13], 2
je 0x57ab72
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x88]
push 0
push dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
push eax
push ebx
push dword [esp + 0x110]
push dword [esp + 0x64]
push dword [esp + 0x50]
push dword [esp + 0x80]
push dword [esp + 0x9c]
push esi
push dword [esp + 0x90]
push ebp
push edi
call fcn.00567f39
add esp, 0x34
cmp dword [esp + 0x88], 0
jne 0x57aa3e
mov al, byte [esp + 0x50]
test al, al
je 0x57aa7e
cmp dword [esp + 0x30], 0
je 0x57aa67
push dword [esp + 0x94]
push dword [esp + 0x50]
push ebx
mov ebx, dword [esp + 0x20]
push esi
push 0x1c
push ebx
call fcn.0057b858
add esp, 0x18
mov al, byte [esp + 0x50]
jmp 0x57aa82
push dword [esp + 0x38]
push ebx
mov ebx, dword [esp + 0x1c]
push esi
push 0x1f
push ebx
call fcn.0057b786
add esp, 0x14
jmp 0x57aa61
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
je 0x57aaa1
movzx eax, al
push eax
push dword [esp + 0x1c]
push 0
push dword [esp + 0x44]
push ebp
push edi
call fcn.00566c25
add esp, 0x18
push 0xffffffffffffffff
push dword [esp + 0x6c]
push dword [esp + 0x84]
push esi
push ebp
push edi
call fcn.0056941e
add esp, 0x18
cmp dword [esp + 0xa4], 0
je 0x57aad2
push esi
push 0x8f
push ebx
call fcn.0057b752
add esp, 0xc
mov eax, dword [esp + 0x44]
cmp eax, 1
jg 0x57aae3
mov cl, byte [esp + 0x50]
test cl, cl
je 0x57aafc
push 0
push esi
push 0x82
push ebx
call fcn.0057b76b
mov eax, dword [esp + 0x54]
add esp, 0x10
mov cl, byte [esp + 0x50]
test eax, eax
je 0x57ab18
movzx eax, cl
push eax
push dword [esp + 0x1c]
push dword [esp + 0x6c]
push 0
push ebp
push edi
call fcn.00566c25
add esp, 0x18
mov esi, dword [esp + 0x24]
cmp esi, 2
push 0
push 0
push 6
pop ecx
push 4
pop eax
cmove eax, ecx
push eax
push dword [esp + 0x74]
push dword [esp + 0x74]
push dword [esp + 0x90]
push dword [esp + 0x34]
push ebp
push edi
call fcn.0055e79b
add esp, 0x24
cmp dword [esp + 0x44], 0
je 0x57ab7a
movzx eax, byte [esp + 0x50]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x40]
push dword [esp + 0x104]
push ebp
push edi
call fcn.00566bb2
add esp, 0x18
jmp 0x57ab7a
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x57ab93
push 1
push eax
push 0x56
push ebx
call fcn.0057b76b
add esp, 0x10
mov eax, dword [esp + 0x58]
test eax, eax
je 0x57abc3
push dword [esp + 0x20]
push dword [esp + 0x104]
push dword [esp + 0x40]
push ebp
push 2
push dword [esp + 0x10c]
push 0x81
push eax
push edi
call fcn.0055de02
add esp, 0x24
cmp esi, 1
je 0x57abfe
push dword [esp + 0x20]
push ebx
call fcn.00584970
cmp esi, 2
jne 0x57abe8
push dword [esp + 0xa0]
call fcn.005890e9
add esp, 0xc
jmp 0x57abfe
push dword [esp + 0xb8]
push dword [esp + 0x48]
push 0x27
push ebx
call fcn.0057b76b
add esp, 0x18
push dword [esp + 0x40]
push ebx
call fcn.00584970
cmp byte [edi + 0x12], 0
pop ecx
pop ecx
jne 0x57ac2a
cmp dword [edi + 0x84], 0
jne 0x57ac2a
cmp dword [esp + 0x10c], 0
jne 0x57ac2a
push edi
call fcn.0055a0fe
pop ecx
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x579ab8
push str.rows_updated
push eax
push ebx
call fcn.0055d8c2
jmp 0x579ab5
mov esi, dword [esp + 0xf8]
jmp 0x579ac7