Function at 0x457980
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x570400]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x68], eax
xor eax, eax
push esi
mov dword [esp + 0x30], eax
mov esi, ecx
mov dword [esp + 0x44], eax
xor ecx, ecx
mov eax, dword [esp + 0x68]
push edi
mov edi, edx
mov dword [esp + 0x18], esi
mov edx, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov esi, dword [esi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], 0xa7
mov dword [edx + 0x1c], 0xffffffff
test edi, edi
je 0x457b02
test byte [eax + 0x18], 6
je 0x457a25
xor edi, edi
mov dword [esp + 0x20], edi
jmp 0x457b02
mov eax, dword [esi + 0x14]
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x457a72
mov eax, dword [esi + 0x10]
mov dword [esp + 0x44], eax
nop dword [eax]
mov edx, dword [eax]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x457aa8
test eax, eax
jne 0x457aba
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov eax, ecx
mov edi, dword [esp + 0x20]
add eax, eax
mov edx, dword [esi + 0x10]
mov eax, dword [edx + eax*8 + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jne 0x457af8
mov edx, str.main
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x457ae3
test eax, eax
jne 0x457af5
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
mov edi, dword [eax]
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov dword [esp + 0x20], edi
jmp 0x457afe
movzx ecx, byte [eax + 0x55c130]
movzx eax, byte [esi + 0x55c130]
sub ecx, eax
jne 0x457abd
inc edx
jmp 0x457a44
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
inc ecx
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], eax
cmp ecx, dword [esi + 0x14]
jge 0x457a6e
jmp 0x457a40
movzx ecx, byte [eax + 0x55c130]
movzx eax, byte [esi + 0x55c130]
sub ecx, eax
jne 0x457af8
inc edx
jmp 0x457a81
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 4]
mov dword [esp + 0x60], esi
test esi, esi
je 0x457e25
xor edx, edx
lea eax, [esi + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], eax
cmp dword [esi], edx
jle 0x457df1
nop word [eax + eax]
test dword [eax + 0x28], 0x2000
mov esi, dword [eax + 0x10]
mov dword [esp + 0x44], esi
je 0x457c94
mov eax, dword [eax + 0x14]
xor edi, edi
mov dword [esp + 0x28], edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x54], eax
cmp dword [eax], edi
jle 0x457c80
lea esi, [eax + 0x14]
nop
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x24]
lea ecx, [esi - 0xc]
mov dword [esp + 0x64], 0
push dword [esp + 0x34]
call fcn.004574e0
add esp, 0xc
test eax, eax
je 0x457c58
cmp dword [esp + 0x5c], 0
jne 0x457c2f
cmp dword [esp + 0x1c], 0
jle 0x457bf3
mov eax, dword [esp + 0x14]
test dword [eax + 0x28], 0x400
je 0x457bd6
mov edx, dword [esp + 0x30]
mov ecx, dword [eax + 0x30]
call fcn.00476900
test eax, eax
js 0x457bd6
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x457c58
test al, 8
jne 0x457bfe
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x457be9
mov ecx, dword [esp + 0x38]
mov edx, eax
call fcn.0045d940
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
inc dword [esp + 0x1c]
mov edi, 1
jmp 0x457c36
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x48]
mov ecx, dword [esp + 0x40]
movzx eax, word [eax + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00457710
mov eax, dword [esp + 0x50]
add esp, 8
inc dword [esp + 0x1c]
mov edi, 1
mov dword [esp + 0x34], eax
jmp 0x457c36
cmp dword [esp + 0x1c], 0
jg 0x457c58
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov word [ecx + 0x20], ax
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x457c70
jmp 0x457c5c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
inc eax
add esi, 0x14
mov dword [esp + 0x28], eax
cmp eax, dword [ecx]
jl 0x457b60
mov edx, dword [esp + 0x3c]
test edi, edi
jne 0x458049
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x2c], 0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
jne 0x457c9f
jmp 0x457dd5
cmp dword [esp + 0x2c], 0
je 0x457ea0
test edi, edi
je 0x457ced
mov ecx, dword [esp + 0x4c]
cmp dword [esi + 0x3c], ecx
jne 0x457dd5
test ecx, ecx
jne 0x457ced
mov ecx, 0x562894
mov eax, edi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457ce0
test dl, dl
je 0x457cdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457ce0
add eax, 2
add ecx, 2
test dl, dl
jne 0x457cc0
xor eax, eax
jmp 0x457ce5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x457dcd
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0xc]
test edi, edi
je 0x457d70
mov edx, dword [esp + 0x2c]
sub edi, edx
nop
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x457d5b
test eax, eax
jne 0x457d6d
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xdc], 2
jb 0x457ea0
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x457ea0
mov eax, dword [eax + 0x118]
test eax, eax
je 0x457ea0
mov ecx, dword [esp + 0x10]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x457e9a
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x457d47
jmp 0x457ea0
movzx ecx, byte [eax + 0x55c130]
movzx eax, byte [esi + 0x55c130]
sub ecx, eax
jne 0x457dc9
inc edx
jmp 0x457d00
mov edi, dword [esp + 0x2c]
mov edx, edi
mov esi, dword [esi]
sub esi, edi
nop word [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x457d92
test ecx, ecx
je 0x457d0f
inc edx
jmp 0x457d80
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x457da7
inc edx
jmp 0x457d80
mov esi, dword [esp + 0x44]
cmp dword [esi + 0x14], 1
jne 0x457dc9
push dword [esp + 0x4c]
mov edx, esi
mov ecx, edi
call fcn.004577f0
add esp, 4
test eax, eax
jne 0x457d13
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x60]
inc edx
add eax, 0x48
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], eax
cmp edx, dword [esi]
jl 0x457b30
mov esi, dword [esp + 0x40]
test esi, esi
je 0x457e1d
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x2c]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x2c], eax
test byte [esi + 0x24], 0x48
je 0x457e16
or dword [edx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x4c], eax
test ecx, ecx
jne 0x4585d8
test edi, edi
jne 0x4582a2
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x84]
test eax, eax
je 0x458160
mov cl, byte [edi + 0x9e]
cmp byte [edi + 0x9f], 0
mov edi, dword [esp + 0x2c]
mov byte [esp + 0xf], cl
je 0x4580b7
mov edx, dword [esp + 0x24]
test dword [edx + 0x18], 0x400
je 0x458164
test edi, edi
je 0x458095
mov esi, dword [eax]
mov edx, edi
sub esi, edi
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x45805b
test ecx, ecx
je 0x458091
inc edx
jmp 0x457e80
mov dword [eax], 0
mov eax, dword [esp + 0x30]
xor dl, dl
mov byte [esp + 0xf], dl
mov ecx, eax
test eax, eax
je 0x457ed2
mov al, byte [eax]
test al, al
je 0x457ed6
nop word [eax + eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x55c130]
mov al, byte [ecx]
test al, al
jne 0x457ec0
mov byte [esp + 0xf], dl
movzx eax, word [esi + 0x22]
xor ecx, ecx
mov edi, dword [esi + 4]
mov esi, eax
mov dword [esp + 0x54], esi
xor esi, esi
mov dword [esp + 0x28], ecx
cmp si, ax
jge 0x457f62
cmp byte [edi + 0xa], dl
jne 0x457f51
mov esi, dword [esp + 0x30]
mov edx, dword [edi]
sub esi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx ecx, byte [edx + esi]
cmp eax, ecx
jne 0x457f98
test eax, eax
jne 0x457faa
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x1c], eax
jle 0x457fd9
test dword [esi + 0x28], 0x400
je 0x457fbc
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 0x30]
call fcn.00476900
test eax, eax
js 0x457fbc
mov al, byte [esi + 0x24]
test al, 0x10
jne 0x457fb0
mov dl, byte [esp + 0xf]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x54]
inc ecx
cwde
add edi, 0x10
mov dword [esp + 0x28], ecx
cmp ecx, eax
jl 0x457ef0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
test ecx, ecx
jne 0x458052
test dword [edi + 0x1c], 0x200
mov edi, dword [esp + 0x20]
jne 0x457dd9
inc dword [esp + 0x50]
mov dword [esp + 0x40], eax
jmp 0x457dd9
movzx ecx, byte [ecx + 0x55c130]
movzx eax, byte [eax + 0x55c130]
sub eax, ecx
jne 0x457f49
inc edx
jmp 0x457f00
test al, 8
jne 0x457ff6
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x457fcf
mov ecx, dword [esp + 0x38]
mov edx, eax
call fcn.0045d940
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x44]
inc dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], esi
movsx eax, word [edi + 0x20]
cmp edx, eax
jne 0x45801e
or eax, 0xffffffff
jmp 0x458021
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x48]
mov ecx, dword [esp + 0x40]
movzx eax, word [eax + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00457710
mov eax, dword [esp + 0x50]
add esp, 8
mov dword [esp + 0x34], eax
jmp 0x457fd9
movzx eax, dx
mov ecx, dword [esp + 0x10]
mov word [ecx + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x457f66
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [edx + edx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x457f66
mov edi, dword [esp + 0x20]
jmp 0x457dd1
mov edi, dword [esp + 0x20]
jmp 0x457dd9
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x458073
inc edx
jmp 0x457e80
mov eax, dword [esp + 0x18]
mov ecx, edi
push 0
mov edx, dword [eax + 0x84]
call fcn.004577f0
add esp, 4
test eax, eax
je 0x458164
mov cl, byte [esp + 0xf]
xor eax, eax
cmp cl, 0x80
mov ecx, dword [esp + 0x10]
setne al
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x14], eax
jmp 0x458164
cmp cl, 0x80
je 0x458118
test edi, edi
je 0x458113
mov edx, 0x562898
mov esi, edi
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4580fa
test ecx, ecx
jne 0x45810c
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1c], 1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x14], eax
jmp 0x458164
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x45810f
inc edx
jmp 0x4580d0
mov cl, byte [esp + 0xf]
cmp cl, 0x7f
je 0x458164
test edi, edi
je 0x458164
mov edx, 0x56289c
mov esi, edi
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x45814b
test ecx, ecx
jne 0x45815d
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1c], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x14], eax
jmp 0x458164
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x458164
inc edx
jmp 0x458125
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
test dword [eax + 0x18], 0x200
je 0x4581c2
test edi, edi
je 0x4581c2
mov edi, dword [eax + 8]
test edi, edi
je 0x4581c2
mov esi, dword [esp + 0x2c]
mov edx, str.excluded
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4581ad
test ecx, ecx
jne 0x4581bf
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x14], eax
mov dword [ecx + 0x1c], 2
jmp 0x4581c6
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x4581c2
inc edx
jmp 0x458187
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4582a2
mov eax, dword [esp + 0x30]
xor dl, dl
mov byte [esp + 0xf], dl
mov ecx, eax
test eax, eax
je 0x4581f6
mov al, byte [eax]
test al, al
je 0x4581fa
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x55c130]
mov al, byte [ecx]
test al, al
jne 0x4581e4
mov byte [esp + 0xf], dl
mov ecx, dword [esp + 0x14]
xor edi, edi
inc dword [esp + 0x50]
mov dword [esp + 0x60], edi
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
movzx eax, word [eax + 0x22]
mov esi, eax
mov dword [esp + 0x54], esi
cmp di, ax
jge 0x45826a
nop dword [eax]
cmp byte [ecx + 0xa], dl
jne 0x45835a
mov esi, dword [esp + 0x30]
mov edx, dword [ecx]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x458336
test ecx, ecx
jne 0x458348
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x20]
cmp edi, eax
mov eax, 0xffffffff
cmove edi, eax
mov eax, dword [esp + 0x14]
movsx esi, word [eax + 0x22]
cmp edi, esi
jl 0x4583bf
mov ecx, dword [esp + 0x30]
call fcn.0045e1c0
test eax, eax
mov eax, dword [esp + 0x14]
je 0x45829a
test dword [eax + 0x1c], 0x200
mov ecx, 0xffffffff
cmove edi, ecx
cmp edi, esi
jl 0x4583bf
mov edi, dword [esp + 0x50]
cmp edi, 1
jl 0x4582e7
mov esi, dword [esp + 0x40]
test esi, esi
je 0x4582e7
mov eax, dword [esp + 0x24]
test byte [eax + 0x18], 0x28
jne 0x4582e7
mov ecx, dword [esp + 0x30]
call fcn.0045e1c0
test eax, eax
je 0x4582e7
mov eax, dword [esi + 0x10]
test dword [eax + 0x1c], 0x200
je 0x4585b8
test dword [esi + 0x28], 0x2000
jne 0x4585a8
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
test byte [edi + 0x18], 0x80
je 0x4583a3
test esi, esi
jne 0x4583a3
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov edx, dword [eax]
mov dword [esp + 0x60], edx
test edx, edx
jle 0x4583a3
lea esi, [eax + 0x14]
nop dword [eax + eax]
test byte [esi], 3
mov edi, dword [esi - 8]
jne 0x45838f
mov eax, dword [esp + 0x30]
test edi, edi
jne 0x458372
neg eax
sbb eax, eax
jmp 0x458387
movzx eax, byte [eax + 0x55c130]
movzx ecx, byte [ecx + 0x55c130]
sub ecx, eax
jne 0x45834e
inc edx
jmp 0x458241
mov ecx, dword [esp + 0x5c]
mov dl, byte [esp + 0xf]
mov esi, dword [esp + 0x54]
inc edi
movsx eax, si
add ecx, 0x10
mov dword [esp + 0x5c], ecx
cmp edi, eax
jl 0x458230
jmp 0x45826a
test eax, eax
je 0x45838f
mov edx, eax
mov ecx, edi
call fcn.0041ca50
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
test eax, eax
je 0x458623
inc ecx
add esi, 0x14
mov dword [esp + 0x28], ecx
cmp ecx, edx
jl 0x458320
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov edi, dword [edi + 0xc]
inc dword [esp + 0x74]
mov dword [esp + 0x24], edi
test edi, edi
je 0x458810
mov ecx, dword [esp + 0x1c]
jmp 0x457afa
xor ecx, ecx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
movzx edx, di
mov esi, dword [ecx + 0x1c]
cmp esi, 2
jne 0x4584d2
mov esi, dword [esp + 0x18]
cmp byte [esi + 0xdc], 2
jb 0x4584aa
mov word [ecx + 0x20], dx
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x58], 0xa7
mov esi, ecx
mov edi, dword [esp + 0x1c]
test dword [esi + 4], 0x810000
jne 0x458444
mov edx, dword [esi + 0xc]
test edx, edx
je 0x45841f
mov ecx, dword [esp + 0x38]
call fcn.0045c540
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test edx, edx
je 0x458436
mov ecx, dword [esp + 0x38]
call fcn.0045c540
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], 0
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x458b08
movzx eax, word [esi + 0x20]
test ax, ax
js 0x458b01
movsx esi, ax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x2c]
test byte [edx + 0x1c], 0x60
je 0x458ad1
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x458ad1
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x458aa5
mov eax, dword [esp + 0x40]
or ecx, 0xffffffff
mov esi, dword [esp + 0x10]
or edx, 0xffffffff
or dword [eax + 0x38], ecx
or dword [eax + 0x3c], edx
jmp 0x458b08
mov ecx, eax
call fcn.0046f8f0
mov esi, dword [esp + 0x10]
movsx ecx, ax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], 0xb0
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x24]
mov dword [esi + 0x1c], ecx
jmp 0x458402
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x9f]
mov word [ecx + 0x20], dx
test al, al
je 0x458521
mov edi, dword [esp + 0x14]
mov byte [ecx + 2], 0xa7
mov ecx, edi
mov dword [esp + 0x58], 0xb0
call fcn.0046f8f0
movsx ecx, ax
movsx eax, word [edi + 0x22]
inc eax
imul eax, esi
mov esi, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x458402
mov dword [esp + 0x58], 0x4d
test edi, edi
jns 0x458536
mov byte [ecx + 1], 0x44
jmp 0x458400
test esi, esi
jne 0x458571
cmp edi, 0x20
jl 0x458555
mov ecx, dword [esp + 0x18]
or eax, 0xffffffff
mov esi, dword [esp + 0x10]
or dword [ecx + 0x94], eax
jmp 0x458402
mov esi, dword [esp + 0x10]
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x18]
or dword [ecx + 0x94], eax
jmp 0x458402
cmp edi, 0x20
jl 0x45858c
mov ecx, dword [esp + 0x18]
or eax, 0xffffffff
mov esi, dword [esp + 0x10]
or dword [ecx + 0x98], eax
jmp 0x458402
mov esi, dword [esp + 0x10]
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x18]
or dword [ecx + 0x98], eax
jmp 0x458402
mov ecx, edi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x10]
mov byte [esi + 1], 0x44
jmp 0x4585dc
test dword [esi + 0x28], 0x2000
mov ecx, edi
mov dword [esp + 0x1c], ecx
jne 0x4585ae
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
mov word [esi + 0x20], ax
mov byte [esi + 1], 0x44
jmp 0x4585dc
mov esi, dword [esp + 0x10]
cmp ecx, 1
je 0x458402
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
test ecx, ecx
je 0x4589e5
lea eax, [edi - 1]
cmp dword [ecx], eax
jne 0x4589da
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 4]
test eax, 0x800000
je 0x4588f6
and eax, 0xff7fffff
mov dword [esi + 4], eax
jmp 0x458924
mov edx, dword [esp + 0x24]
lea eax, [ecx + ecx*4]
mov ecx, edx
mov esi, dword [edx + 8]
test byte [ecx + 0x18], 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + eax*4 + 8]
jne 0x45866e
test byte [eax + 4], 0x10
je 0x45866e
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x20]
call fcn.0041c7c0
add esp, 0xc
mov eax, 2
pop edi
pop esi
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
test dword [eax + 4], 0x8000
je 0x458692
mov edx, dword [esp + 0x24]
test dword [edx + 0x18], 0x4000
je 0x45868a
cmp edx, dword [esp + 0x70]
je 0x458692
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x458649
mov dl, byte [eax]
cmp dl, 0xb0
jne 0x45869c
mov dl, byte [eax + 2]
cmp dl, 0xb1
jne 0x4586a6
mov eax, dword [eax + 0x14]
jmp 0x4586b1
cmp dl, 0x8a
jne 0x4586c9
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x4586c9
push str.row_value_misused
push dword [esp + 0x1c]
call fcn.0041c7c0
add esp, 8
jmp 0x458655
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x28], 0
jne 0x45870f
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
lea eax, [ecx + ecx*4]
mov edx, dword [esi + eax*4 + 8]
test edx, edx
je 0x4586f6
push 0
push 0
mov ecx, edi
call fcn.0045c7e0
add esp, 8
mov esi, eax
jmp 0x4586f8
xor esi, esi
cmp byte [edi + 0x57], 0
je 0x458744
test esi, esi
je 0x45870b
mov edx, esi
mov ecx, edi
call fcn.0045c540
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0xdc], 2
jb 0x458b1b
mov eax, dword [ecx + 0x118]
test eax, eax
je 0x458b1b
nop
cmp dword [eax], edi
je 0x458805
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x458730
jmp 0x458b1b
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x458787
mov dword [esp + 0x78], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x88], xmm0
mov dword [esp + 0x7c], 0x457300
mov dword [esp + 0x90], eax
test esi, esi
je 0x458787
mov edx, esi
lea ecx, [esp + 0x78]
call fcn.00457010
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x71
jne 0x4587a3
push dword [edi + 8]
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0045ac10
add esp, 4
mov esi, eax
movups xmm0, xmmword [edi]
mov ecx, dword [esi + 0x30]
movups xmm1, xmmword [esi]
movups xmm2, xmmword [esi + 0x10]
movups xmm3, xmmword [esi + 0x20]
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [esi + 0x20], xmm0
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
movups xmmword [edi], xmm1
movups xmmword [edi + 0x10], xmm2
movups xmmword [edi + 0x20], xmm3
mov dword [edi + 0x30], ecx
test dword [edi + 4], 0x1000000
je 0x4587ee
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x4587ee
mov dword [eax + 0x48], edi
mov ecx, dword [esp + 0x18]
mov edx, 0x45c6c0
push esi
call fcn.00492f10
add esp, 4
jmp 0x45870f
mov dword [eax], 0
jmp 0x458b1b
test esi, esi
jne 0x4585e9
mov edi, dword [esp + 0x10]
test byte [edi + 4], 0x80
je 0x4588b6
mov eax, dword [esp + 0x38]
cmp byte [eax + 0xb1], 0
jne 0x45887f
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x70]
test dword [eax + 0x18], 0x10000
je 0x458874
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x45885a
mov eax, ecx
and eax, 0x40000000
or eax, esi
jne 0x45887f
and ecx, 0x20000000
or ecx, 0
je 0x45886e
mov eax, 1
test eax, eax
jmp 0x45887d
xor eax, eax
test eax, eax
jmp 0x45887d
and ecx, 0x40000000
or ecx, 0
je 0x4588b6
push dword [esp + 0x30]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.0041b8b0
xorps xmm0, xmm0
mov byte [edi], 0x75
add esp, 0xc
movq qword [edi + 0x2c], xmm0
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 4]
test esi, 0x4000800
jne 0x4585e5
mov ecx, dword [edi + 8]
call fcn.0045d9e0
test eax, eax
je 0x4585e5
or esi, eax
mov byte [edi], 0xaa
mov dword [edi + 4], esi
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0xc]
mov edi, dword [esp + 0x38]
test edx, edx
je 0x458908
mov ecx, edi
call fcn.0045c540
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test edx, edx
je 0x45891d
mov ecx, edi
call fcn.0045c540
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x18]
movzx edi, word [esi + 0x20]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.004190c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4589bc
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x4c]
or eax, 0xffffffff
mov byte [esi], 0xa7
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [ecx + 0x2c]
mov word [esi + 0x20], di
mov edi, dword [esp + 0x34]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 0x10]
or dword [esi + 4], 0x200000
mov dword [esi + 0x2c], eax
mov eax, dword [edi]
lea edx, [eax + 1]
cmp dword [edi + 4], edx
jge 0x45899a
mov eax, dword [esp + 0x18]
mov edx, edi
push esi
mov ecx, dword [eax]
call fcn.0045d470
add esp, 4
jmp 0x4589c0
movups xmm0, xmmword [0x55b010]
lea eax, [eax + eax*4]
mov dword [edi], edx
lea ecx, [edi + eax*4]
mov dword [esp + 0x34], edi
mov eax, dword [0x55b020]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], esi
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov byte [edi], 0xac
mov dword [edi + 8], str.coalesce
mov dword [edi + 0x14], eax
jmp 0x458b1f
mov edx, ecx
mov ecx, dword [esp + 0x38]
call fcn.0045d940
test edi, edi
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x458a16
push dword [esp + 0x30]
push esi
push ecx
push eax
push str._s:__s._s._s
push dword [esp + 0x2c]
call fcn.0041c7c0
add esp, 0x18
jmp 0x458a63
test esi, esi
je 0x458a33
push dword [esp + 0x30]
push esi
push eax
push str._s:__s._s
push dword [esp + 0x28]
call fcn.0041c7c0
add esp, 0x14
jmp 0x458a63
test edi, edi
jne 0x458a4d
mov ecx, dword [esp + 0x6c]
test byte [ecx + 4], 0x80
je 0x458a4d
push dword [esp + 0x30]
push eax
push str._s:___s____should_this_be_a_string_literal_in_single_quotes_
jmp 0x458a57
push dword [esp + 0x30]
push eax
push str._s:__s
push dword [esp + 0x24]
call fcn.0041c7c0
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, esi
mov edx, dword [ecx]
nop
test byte [eax + 4], 3
jne 0x458a7d
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x458a86
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x458a70
jmp 0x458a89
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], 0x79
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x70]
inc dword [eax + 0x14]
jmp 0x458406
mov esi, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
cwde
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x40]
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
or dword [eax + 0x38], ecx
or dword [eax + 0x3c], edx
jmp 0x458b08
cmp esi, 0x40
mov eax, 0x3f
cmovge esi, eax
mov eax, dword [esp + 0x40]
xor ecx, ecx
xor edx, edx
bts ecx, esi
cmp esi, 0x20
cmovae edx, ecx
xor ecx, edx
cmp esi, 0x40
mov esi, dword [esp + 0x10]
cmovae edx, ecx
or dword [eax + 0x38], ecx
or dword [eax + 0x3c], edx
jmp 0x458b08
or dword [ecx + 0x28], 0x4000
mov eax, dword [esp + 0x58]
mov byte [esi], al
cmp edi, 1
jne 0x458655
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [ecx]
cmp dword [esi + 0x16c], 0
je 0x458bfd
mov al, byte [edi]
cmp al, 0xa7
je 0x458b3c
cmp al, 0x4d
jne 0x458bfd
cmp dword [esp + 0x4c], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
je 0x458bfd
mov eax, dword [esi + 0x10]
xor edx, edx
mov esi, dword [esp + 0x4c]
add eax, 0xc
cmp dword [eax], esi
je 0x458b78
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], esi
jne 0x458b62
test ecx, ecx
js 0x458bfd
mov ecx, dword [esp + 0x6c]
cmp byte [edi], 0x4d
jne 0x458b89
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x84]
jmp 0x458bb4
mov esi, dword [ecx]
xor eax, eax
test esi, esi
jle 0x458bfd
mov edi, dword [edi + 0x1c]
add ecx, 0x34
cmp edi, dword [ecx]
je 0x458ba5
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x458b97
jmp 0x458bfd
mov esi, dword [esp + 0x6c]
lea eax, [eax + eax*8]
mov edi, dword [esp + 0x10]
mov esi, dword [esi + eax*8 + 0x18]
test esi, esi
je 0x458bfd
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x458bca
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x458be5
movzx eax, word [esi + 0x20]
test ax, ax
js 0x458be0
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x458be5
mov eax, str.ROWID
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esi]
push eax
call fcn.0046dbf0
add esp, 8
cmp eax, 2
jne 0x458bfd
mov byte [edi], 0x79
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
inc dword [eax + 0x10]
cmp eax, ecx
je 0x458c1a
nop dword [eax]
mov eax, dword [eax + 0xc]
inc dword [eax + 0x10]
cmp eax, ecx
jne 0x458c10
mov ecx, dword [esp + 0x94]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret