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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
xor eax, eax
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], eax
mov eax, 0xa2
push ebx
mov ebx, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x14]
push esi
xor esi, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], edx
mov dword [eax + 0x1c], 0xffffffff
push edi
mov edi, dword [ebp + 8]
test ecx, ecx
je 0x458176
test byte [edx + 0x18], 6
je 0x458133
mov dword [esp + 0x28], esi
jmp 0x458176
xor edi, edi
cmp dword [ebx + 0x14], esi
jle 0x458173
mov ebx, dword [ebx + 0x10]
nop dword [eax]
mov edx, dword [ebx]
mov esi, ecx
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x458214
test ecx, ecx
jne 0x458226
mov ecx, dword [esp + 0x30]
add edi, edi
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*8 + 0xc]
mov dword [esp + 0x2c], eax
mov edx, dword [ebp + 0x10]
xor esi, esi
mov edi, dword [ebp + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x4584b8
xor edx, edx
lea eax, [ecx + 8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
cmp dword [ecx], edx
jle 0x458491
nop word [eax + eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x34], ecx
test eax, eax
je 0x45826d
test dword [eax + 8], 0x800
je 0x45826d
mov ebx, dword [eax]
xor esi, esi
mov dword [esp + 0x3c], 0
cmp dword [ebx], esi
jle 0x458265
lea edi, [ebx + 0xc]
push dword [esp + 0x28]
mov edx, dword [ebp + 0xc]
push dword [ebp + 8]
mov ecx, dword [edi]
call fcn.00457fa0
add esp, 8
test eax, eax
je 0x458246
mov eax, dword [esp + 0x20]
inc dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], 2
mov word [eax + 0x20], si
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x45824a
movzx eax, byte [eax + 0x561f98]
movzx ecx, byte [ecx + 0x561f98]
sub ecx, eax
jne 0x45822c
inc edx
jmp 0x458146
mov eax, dword [esp + 0x30]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jge 0x45816e
mov ecx, dword [esp + 0x28]
jmp 0x458140
mov eax, dword [esp + 0x3c]
inc esi
add edi, 0x18
cmp esi, dword [ebx]
jl 0x4581d6
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
test eax, eax
jne 0x458471
mov ecx, dword [esp + 0x34]
test edi, edi
je 0x458471
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x14]
je 0x458285
mov eax, dword [esp + 0x2c]
cmp dword [ecx + 0x48], eax
jne 0x458471
test edi, edi
je 0x4582fc
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0xc]
mov edx, edi
test edi, edi
jne 0x458298
mov edx, dword [ecx]
mov esi, dword [ebp + 8]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4582dd
test ecx, ecx
jne 0x4582f3
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 2
jb 0x4582fc
test edi, edi
je 0x4582fc
mov eax, dword [eax + 0x110]
test eax, eax
je 0x4582fc
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x4582f6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4582d0
jmp 0x4582fc
movzx eax, byte [eax + 0x561f98]
movzx ecx, byte [ecx + 0x561f98]
sub ecx, eax
jne 0x45846a
inc edx
jmp 0x4582a0
mov dword [eax], 0
mov ecx, dword [esp + 0x34]
inc dword [esp + 0x14]
test ebx, ebx
mov esi, dword [esp + 0x20]
cmovne esi, dword [esp + 0x1c]
xor ebx, ebx
mov eax, dword [ecx + 4]
movsx ecx, word [ecx + 0x2a]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x458461
nop dword [eax]
mov edi, dword [ebp + 0xc]
mov edx, dword [eax]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4583de
test eax, eax
jne 0x4583f0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp edx, 1
jne 0x45842d
test byte [ecx + 0x24], 4
jne 0x4583aa
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x45842d
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], ecx
test ecx, ecx
jle 0x458429
mov ebx, dword [eax]
nop dword [eax]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x4583f6
test eax, eax
jne 0x458408
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
inc ebx
mov eax, dword [esp + 0x4c]
add eax, 0x10
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], eax
movsx ecx, word [edx + 0x2a]
cmp ebx, ecx
jl 0x458330
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], esi
jmp 0x458475
movzx ecx, byte [eax + 0x561f98]
movzx eax, byte [esi + 0x561f98]
sub ecx, eax
jne 0x4583aa
inc edx
jmp 0x458337
movzx ecx, byte [eax + 0x561f98]
movzx eax, byte [esi + 0x561f98]
sub ecx, eax
jne 0x45840b
inc edx
jmp 0x458397
mov ecx, dword [esp + 0x48]
add ebx, 8
inc ecx
mov dword [esp + 0x48], ecx
cmp ecx, dword [esp + 0x50]
jl 0x458390
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
inc edx
mov esi, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
movsx eax, word [eax + 0x28]
cmp ebx, eax
jne 0x458457
mov ecx, dword [ebp + 0x14]
or eax, 0xffffffff
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov word [ecx + 0x20], ax
jmp 0x458475
mov ecx, dword [ebp + 0x14]
movzx eax, bx
mov word [ecx + 0x20], ax
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
jmp 0x458475
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
inc edx
mov eax, dword [esp + 0x20]
add eax, 0x48
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
cmp edx, dword [ecx]
jl 0x4581a0
test esi, esi
je 0x4584b8
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x2c], eax
test byte [esi + 0x24], 8
je 0x4584b1
or dword [ecx + 4], 0x100000
mov eax, dword [eax + 0x48]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x14]
jne 0x45877a
test edi, edi
je 0x45877a
test ecx, ecx
jne 0x45877a
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x78], ecx
je 0x45852b
mov bl, byte [eax + 0x90]
cmp bl, 0x7c
je 0x4585a0
mov edx, 0x567280
sub edi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x458580
test eax, eax
jne 0x458592
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x1c], 1
mov eax, dword [eax + 0x78]
mov dword [esp + 0x20], eax
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
test dword [eax + 0x18], 0x200
je 0x45860a
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x45860a
mov edx, str.excluded
sub edi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4585f2
test eax, eax
jne 0x458604
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x20], edx
mov dword [eax + 0x1c], 2
jmp 0x45860e
movzx ecx, byte [eax + 0x561f98]
movzx eax, byte [esi + 0x561f98]
sub ecx, eax
jne 0x458598
inc edx
jmp 0x458500
cmp bl, 0x7b
je 0x458528
mov edi, dword [ebp + 8]
mov edx, 0x567284
mov esi, edi
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x4585d9
test ecx, ecx
jne 0x4585ef
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x1c], 0
mov eax, dword [eax + 0x78]
mov dword [esp + 0x20], eax
jmp 0x45852b
movzx eax, byte [eax + 0x561f98]
movzx ecx, byte [ecx + 0x561f98]
sub ecx, eax
jne 0x45852b
inc edx
jmp 0x4585b0
movzx ecx, byte [eax + 0x561f98]
movzx eax, byte [esi + 0x561f98]
sub ecx, eax
jne 0x45860a
inc edx
jmp 0x458550
mov edx, dword [esp + 0x20]
test edx, edx
je 0x458782
movsx edi, word [edx + 0x2a]
xor esi, esi
mov eax, dword [edx + 0x48]
mov ebx, dword [edx + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x4c], edi
test edi, edi
jle 0x458687
mov edi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub edi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [edx + edi]
cmp ecx, eax
jne 0x458660
test ecx, ecx
jne 0x458672
mov edx, dword [esp + 0x20]
movsx eax, word [edx + 0x28]
cmp esi, eax
jne 0x458683
or esi, 0xffffffff
jmp 0x4586b6
movzx eax, byte [eax + 0x561f98]
movzx ecx, byte [ecx + 0x561f98]
sub ecx, eax
jne 0x458675
inc edx
jmp 0x458640
mov edi, dword [esp + 0x4c]
inc esi
add ebx, 0x10
cmp esi, edi
jl 0x458636
jmp 0x45868b
mov edi, dword [esp + 0x4c]
cmp esi, edi
jl 0x4586b6
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0045dc40
test eax, eax
je 0x458785
mov edx, dword [esp + 0x20]
test byte [edx + 0x24], 0x40
jne 0x458785
or esi, 0xffffffff
cmp esi, edi
jge 0x458782
mov ebx, dword [ebp + 0x14]
inc dword [esp + 0x18]
mov eax, dword [ebx + 0x1c]
cmp eax, 2
jne 0x458712
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp byte [eax + 0xc8], 2
jb 0x4586ed
mov word [ebx + 0x20], si
mov esi, dword [ebp + 0xc]
mov dword [ebx + 0x2c], edx
mov dword [esp + 0x38], 0xa2
jmp 0x45878c
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x38], 0xab
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x18]
add eax, esi
or dword [ebx + 4], 0x400000
mov esi, dword [ebp + 0xc]
mov dword [ebx + 0x1c], eax
jmp 0x45878f
test esi, esi
jns 0x45871c
mov byte [ebx + 1], 0x44
jmp 0x458766
test eax, eax
jne 0x458749
cmp esi, 0x20
jl 0x458734
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
or dword [ecx + 0x88], eax
jmp 0x458766
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x88], eax
jmp 0x458766
cmp esi, 0x20
jl 0x458753
or eax, 0xffffffff
jmp 0x45875c
mov eax, 1
mov ecx, esi
shl eax, cl
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x8c], eax
mov word [ebx + 0x20], si
mov esi, dword [ebp + 0xc]
mov dword [ebx + 0x2c], edx
mov dword [esp + 0x38], 0x4d
jmp 0x458788
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
jmp 0x45878c
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4587d8
cmp ecx, 1
jne 0x4587d8
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4587d8
test byte [edx + 0x18], 0x20
jne 0x4587d8
mov ecx, esi
call fcn.0045dc40
test eax, eax
je 0x4587d4
mov eax, dword [edi + 0x10]
test byte [eax + 0x24], 0x40
jne 0x4587d4
mov eax, 1
mov byte [ebx + 1], 0x44
or ecx, 0xffffffff
mov dword [esp + 0x18], eax
mov word [ebx + 0x20], cx
jmp 0x4587d8
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
test byte [edx + 0x18], 0x80
je 0x4588a4
test eax, eax
jne 0x458a29
mov edi, dword [ebp + 8]
test edi, edi
jne 0x4588af
mov eax, dword [edx + 8]
xor ebx, ebx
mov dword [esp + 0x3c], eax
cmp dword [eax], ebx
jle 0x4588af
mov ecx, dword [esp + 0x3c]
add eax, 8
mov dword [esp + 0x4c], eax
mov edi, dword [eax]
test edi, edi
je 0x45888c
mov edx, edi
sub esi, edi
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x45886f
test ecx, ecx
jne 0x458881
mov esi, dword [ebp + 0x10]
lea eax, [ebx + ebx*2]
mov edx, dword [esp + 0x3c]
test byte [esi + 0x18], 1
mov eax, dword [edx + eax*8 + 4]
jne 0x4588ca
test byte [eax + 4], 0x10
je 0x4588ca
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x18]
call fcn.004205b0
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [eax + 0x561f98]
movzx ecx, byte [ecx + 0x561f98]
sub ecx, eax
jne 0x458884
inc edx
jmp 0x458820
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 0xc]
inc ebx
add eax, 0x18
mov dword [esp + 0x4c], eax
cmp ebx, dword [ecx]
jl 0x458814
mov edx, dword [ebp + 0x10]
jmp 0x4588ac
test eax, eax
jne 0x458a29
mov edi, dword [ebp + 8]
mov edx, dword [edx + 0xc]
inc dword [esp + 0x40]
mov dword [ebp + 0x10], edx
test edx, edx
je 0x45897b
mov esi, dword [esp + 0x1c]
jmp 0x458176
test dword [esi + 0x18], 0x4000
jne 0x4588e7
test dword [eax + 4], 0x8000
je 0x4588e7
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x458857
mov cl, byte [eax]
cmp cl, 0xab
jne 0x4588f1
mov cl, byte [eax + 0x26]
cmp cl, 0xac
jne 0x4588fb
add eax, 0x14
jmp 0x458903
cmp cl, 0x86
jne 0x458927
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
je 0x458927
push str.row_value_misused
push dword [esp + 0x14]
call fcn.004205b0
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x40]
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, esi
push eax
push 0x55e7eb
push edi
push ebx
call fcn.00457d50
add esp, 0x10
cmp byte [esi + 0xc8], 2
jb 0x458b4d
mov eax, dword [esi + 0x110]
test eax, eax
je 0x458b4d
nop
cmp dword [eax], edi
je 0x458970
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x458960
jmp 0x458b4d
mov dword [eax], 0
jmp 0x458b4d
test edi, edi
jne 0x458a35
mov ebx, dword [ebp + 0x14]
test byte [ebx + 4], 0x40
je 0x458a18
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xa5], 0
jne 0x4589f0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x44]
test dword [eax + 0x18], 0x10000
je 0x4589e5
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x4589cb
mov eax, ecx
and eax, 0x40000000
or eax, edi
jne 0x4589f0
and ecx, 0x20000000
or ecx, 0
je 0x4589df
mov eax, 1
test eax, eax
jmp 0x4589ee
xor eax, eax
test eax, eax
jmp 0x4589ee
and ecx, 0x40000000
or ecx, 0
je 0x458a18
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.0041f8b0
add esp, 0xc
mov byte [ebx], 0x71
mov dword [ebx + 0x2c], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.0045d590
test eax, eax
jne 0x458c3a
jmp 0x458a35
cmp eax, 1
je 0x458ac4
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
mov ecx, str.ambiguous_column_name
mov edx, dword [esp + 0x28]
test esi, esi
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [ebp + 0xc]
push ecx
test edx, edx
je 0x458a79
push edi
push edx
push eax
push str._s:__s._s._s
push dword [esp + 0x24]
call fcn.004205b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x44]
inc dword [eax + 0x14]
jmp 0x458ac8
test edi, edi
je 0x458aa1
push edi
push eax
push str._s:__s._s
push dword [esp + 0x20]
call fcn.004205b0
mov eax, dword [esp + 0x24]
add esp, 0x14
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x44]
inc dword [eax + 0x14]
jmp 0x458ac8
push eax
push str._s:__s
push dword [esp + 0x1c]
call fcn.004205b0
mov eax, dword [esp + 0x20]
add esp, 0x10
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x44]
inc dword [eax + 0x14]
jmp 0x458ac8
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 0x14]
movzx eax, word [edi + 0x20]
test ax, ax
js 0x458b05
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x458b05
movsx edx, ax
mov eax, 0x3f
cmp edx, 0x40
cmovge edx, eax
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or dword [ebx + 0x38], eax
or dword [ebx + 0x3c], ecx
mov edx, dword [edi + 0xc]
mov ebx, dword [esp + 0x30]
test edx, edx
je 0x458b17
mov ecx, ebx
call fcn.0045bfa0
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test edx, edx
je 0x458b2c
mov ecx, ebx
call fcn.0045bfa0
mov eax, dword [esp + 0x38]
or dword [edi + 4], 0x800000
mov dword [edi + 0x10], 0
mov byte [edi], al
cmp esi, 1
jne 0x458863
mov esi, dword [esp + 0x10]
test dword [edi + 4], 0x400000
jne 0x458c21
mov eax, dword [esi]
mov ebx, dword [ebp + 0x10]
cmp dword [eax + 0x140], 0
mov ebx, dword [ebx + 4]
je 0x458c21
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x458c21
mov eax, dword [eax + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], ecx
je 0x458ba5
mov edi, ecx
nop dword [eax]
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], edi
jne 0x458b90
mov edi, dword [ebp + 0x14]
test ecx, ecx
js 0x458c21
cmp byte [edi], 0x4d
jne 0x458baf
mov esi, dword [esi + 0x78]
jmp 0x458bd8
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x458c21
mov edi, dword [edi + 0x1c]
lea ecx, [ebx + 0x34]
nop dword [eax]
cmp edi, dword [ecx]
je 0x458bce
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x458bc0
jmp 0x458c21
mov edi, dword [ebp + 0x14]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x458c21
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x458bee
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x458c09
movzx eax, word [esi + 0x28]
test ax, ax
js 0x458c04
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x458c09
mov eax, str.ROWID
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esi]
push eax
call fcn.0046b6a0
add esp, 8
cmp eax, 2
jne 0x458c21
mov byte [edi], 0x75
mov ecx, dword [esp + 0x44]
mov eax, dword [ebp + 0x10]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x458c3a
nop
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x458c30
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret