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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
test eax, eax
push esi
push edi
mov dword [esp + 0x14], 0
jne 0x454444
cmp dword [ebx + 0x78], eax
jne 0x45443f
mov eax, dword [ebx]
test byte [eax + 0x50], 8
jne 0x45443f
mov byte [ebx + 0x17], 1
call fcn.0043c140
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
shr eax, 2
and eax, 1
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x18], eax
add eax, 1
cmp dword [ebp + 0x14], 0
mov dword [ebx + 0x28], eax
je 0x4544a5
mov eax, dword [ebp + 0xc]
test dword [eax + 4], 0x1000
je 0x4544a5
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + 0x1c]
mov ebx, dword [eax]
xor edi, edi
test ebx, ebx
jle 0x45449a
lea esi, [eax + 8]
mov eax, dword [esi]
call fcn.00454170
test eax, eax
jne 0x45449a
add edi, 1
add esi, 0x14
cmp edi, ebx
jl 0x454485
cmp edi, ebx
jne 0x4544a5
mov dword [ebp + 0x14], 0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x24], 0
jne 0x454adb
mov ecx, dword [ebp + 0xc]
call fcn.00454320
test eax, eax
je 0x454adb
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 0x18]
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x34], edx
mov edx, dword [edx]
mov ebx, 0xffff8000
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebx
je 0x454510
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
cmp dword [ecx], eax
mov dword [esp + 0x1c], 0
je 0x45450c
add dword [esp + 0x1c], 1
add ecx, 0x10
cmp dword [ecx], eax
jne 0x454500
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x454519
mov eax, esi
mov edx, dword [eax + 0x58]
mov edi, 1
mov ecx, ebx
shl edi, cl
test edi, edx
jne 0x45453a
or edx, edi
cmp ebx, 1
mov dword [eax + 0x58], edx
jne 0x45453f
call fcn.00466a10
jmp 0x45456b
cmp ebx, 1
je 0x45456b
mov ecx, dword [esi]
mov eax, dword [ecx + 0x10]
mov edx, ebx
shl edx, 4
mov ecx, dword [eax + edx + 4]
cmp byte [ecx + 9], 0
je 0x45456b
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 0x14]
push edx
push 0
push eax
push ebx
mov eax, esi
call fcn.0045fa20
add esp, 0x10
mov edi, dword [esp + 0x20]
cmp edi, 1
jne 0x454639
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 8]
cmp word [edx + 0x20], 0
jge 0x454639
mov esi, dword [esp + 0x28]
push 0
push 0
push 0
push 0xf
push esi
call fcn.0043c3f0
mov ecx, dword [ebp + 8]
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0x18]
push 0x70
push eax
mov eax, dword [esp + 0x18]
push ecx
call fcn.0046f0f0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov ebx, dword [ebp + 8]
add esp, 0xc
push eax
push str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
push 0
mov dword [esp + 0x20], 1
call fcn.0043c7b0
mov ecx, dword [esi]
mov eax, dword [esi + 0x6c]
add esp, 0xc
cmp byte [ecx + 0x57], 0
je 0x4545eb
mov ecx, 0x4d6798
jmp 0x4545f4
mov ecx, dword [esi + 0x68]
lea edx, [edi + edi*4]
lea ecx, [ecx + edx*4]
mov dword [ecx + 8], eax
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
test edx, edx
mov esi, dword [esp + 0x14]
je 0x454bda
cmp esi, 3
je 0x454bda
cmp esi, 4
je 0x454bda
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx]
cmp al, 0xb0
jne 0x454627
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x454bb4
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax]
jmp 0x454bc7
xor esi, esi
cmp edi, esi
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], esi
jle 0x454747
mov edx, dword [esp + 0x34]
add edx, 8
mov dword [esp + 0x2c], edx
lea ebx, [ebx]
cmp dword [esp + 0x30], 0
je 0x454adb
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0xb0
jne 0x45467d
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x454689
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x454696
cmp cl, 0x8a
jne 0x4546b5
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 0x1c]
mov edx, dword [edx]
cmp edx, 1
jle 0x4546b5
cmp bl, 0x8a
je 0x4546ac
cmp byte [eax + 2], 0x8a
je 0x4546ac
mov ecx, dword [ecx + esi + 8]
jmp 0x4546b7
mov eax, dword [ecx + 0x1c]
mov ecx, dword [eax + esi + 8]
jmp 0x4546b7
mov ecx, eax
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
movsx edx, word [eax + 0x20]
test edx, edx
jl 0x4546dd
mov eax, dword [esp + 0x10]
movsx ebx, word [eax + 0x22]
cmp edx, ebx
jge 0x4546dd
mov eax, dword [eax + 4]
shl edx, 4
mov bl, byte [edx + eax + 8]
jmp 0x4546df
mov bl, 0x44
call fcn.00451570
cmp al, 0x40
jle 0x4546fe
cmp bl, 0x40
jle 0x454703
cmp al, 0x43
jge 0x4546fa
cmp bl, 0x43
jge 0x4546fa
mov al, 0x41
jmp 0x454708
mov al, 0x43
jmp 0x454708
movsx eax, bl
jmp 0x454706
movsx eax, al
or al, 0x40
movsx eax, al
sub eax, 0x41
je 0x454721
sub eax, 1
je 0x454721
xor ecx, ecx
cmp bl, 0x43
setge cl
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x24]
add dword [esp + 0x2c], 0x14
add eax, 1
add esi, 0x14
cmp eax, edi
mov dword [esp + 0x24], eax
jl 0x454660
cmp dword [esp + 0x30], 0
je 0x454adb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x10], eax
je 0x454adb
mov edx, eax
jmp 0x454764
mov edx, dword [esp + 0x10]
xor edi, edi
cmp dword [esp + 0x14], edi
jne 0x4545f7
movzx eax, word [edx + 0x34]
mov ecx, dword [esp + 0x20]
movzx esi, ax
cmp esi, ecx
jl 0x454abe
cmp dword [edx + 0x24], edi
jne 0x454abe
cmp ax, 0x3f
jae 0x454abe
cmp dword [esp + 0x3c], edi
je 0x4547b6
movzx eax, word [edx + 0x32]
cmp eax, ecx
jg 0x454abe
cmp esi, ecx
jle 0x4547b6
cmp byte [edx + 0x36], 0
je 0x454abe
cmp ecx, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x24], edi
jle 0x454945
mov ecx, dword [esp + 0x34]
add ecx, 8
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0xb0
jne 0x4547ef
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x4547fb
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x454808
cmp cl, 0x8a
jne 0x45482f
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 0x1c]
mov edx, dword [edx]
cmp edx, 1
jle 0x45482f
cmp bl, 0x8a
je 0x454822
cmp byte [eax + 2], 0x8a
je 0x454822
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + ecx + 8]
jmp 0x454831
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + edx + 8]
jmp 0x454831
mov ecx, eax
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
mov eax, 0x200
test dword [ecx + 4], eax
je 0x454847
mov edx, dword [ebp + 8]
push edx
jmp 0x45486b
test edi, edi
je 0x454856
test dword [edi + 4], eax
je 0x454856
mov eax, dword [ebp + 8]
push eax
jmp 0x454869
mov ebx, dword [ebp + 8]
push ebx
call fcn.004518f0
mov esi, eax
add esp, 4
test esi, esi
jne 0x454875
push ebx
mov ecx, edi
call fcn.004518f0
add esp, 4
mov esi, eax
movzx ecx, word [edi + 0x20]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
xor ebx, ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], eax
mov cx, word [esp + 0x40]
mov edx, dword [esp + 0x30]
cmp word [edx], cx
jne 0x4548db
test esi, esi
je 0x4548e9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x20]
mov ecx, dword [esi]
mov eax, dword [edx + ebx*4]
sub eax, ecx
lea ebx, [ebx]
movzx edx, byte [ecx]
movzx edi, byte [eax + ecx]
cmp edx, edi
jne 0x4548c4
test edx, edx
je 0x4548e9
add ecx, 1
jmp 0x4548b0
movzx edi, byte [edi + 0x4c1700]
movzx edx, byte [edx + 0x4c1700]
sub edx, edi
jne 0x4548db
add ecx, 1
jmp 0x4548b0
add dword [esp + 0x30], 2
add ebx, 1
cmp ebx, dword [esp + 0x20]
jl 0x45488a
cmp ebx, dword [esp + 0x20]
je 0x454945
mov eax, 1
xor edx, edx
mov ecx, ebx
call sub.ntdll.dll__allshl
mov ecx, eax
and ecx, dword [esp + 0x48]
mov edi, edx
and edi, dword [esp + 0x4c]
or ecx, edi
jne 0x454945
or dword [esp + 0x48], eax
mov eax, dword [ebp + 0x18]
or dword [esp + 0x4c], edx
test eax, eax
je 0x454923
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x24]
mov ecx, 0x14
add dword [esp + 0x2c], ecx
add dword [esp + 0x38], ecx
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
jl 0x4547dd
mov ecx, dword [esp + 0x20]
mov eax, 1
xor edx, edx
call sub.ntdll.dll__allshl
add eax, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x48], eax
jne 0x454abe
cmp dword [esp + 0x4c], edx
jne 0x454abe
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x6c]
xor ebx, ebx
cmp dword [esi + 0x70], ecx
jg 0x454992
push ebx
push ebx
push ebx
push 0xf
mov eax, esi
call fcn.0043c3b0
add esp, 0x10
mov dword [esp + 0x38], eax
jmp 0x4549bc
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov byte [eax], 0xf
mov word [eax + 2], bx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
push eax
push str.USING_INDEX__s_FOR_IN_OPERATOR
push ebx
mov ebx, dword [ebp + 8]
call fcn.0043c7b0
mov eax, dword [esi + 0x6c]
mov ecx, dword [edi + 0x2c]
add esp, 0xc
cmp dword [esi + 0x70], eax
jg 0x4549f8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
push ecx
push eax
push 0x70
mov eax, esi
call fcn.0043c3b0
add esp, 0x10
jmp 0x454a27
mov edi, dword [esp + 0x18]
lea edx, [eax + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1c]
mov byte [eax], 0x70
mov word [eax + 2], dx
mov dword [eax + 4], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
mov edx, dword [esp + 0x10]
mov edi, dword [ebx + 8]
push edx
push ebx
call fcn.004671c0
add esp, 8
test eax, eax
je 0x454a64
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x454a50
mov edx, 0xfffffff8
call fcn.0043cde0
jmp 0x454a64
mov ecx, dword [edi + 0x6c]
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov byte [ecx + 1], pe_nt_image_headers32
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
movzx eax, byte [ecx]
add eax, 3
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x454a9c
mov ecx, 1
add dword [ebx + 0x2c], ecx
cmp dword [esp + 0x20], ecx
mov edi, dword [ebx + 0x2c]
mov dword [eax], edi
jne 0x454a9c
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
call fcn.00454390
mov edx, dword [esi]
cmp byte [edx + 0x57], 0
mov ecx, dword [esi + 0x6c]
je 0x454aae
mov eax, 0x4d6798
jmp 0x454abb
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x454760
cmp dword [esp + 0x14], eax
jne 0x4545f7
test byte [ebp + 0x10], 1
mov ebx, dword [ebp + 0xc]
je 0x454b4a
test dword [ebx + 4], 0x1000
jne 0x454b4a
mov esi, dword [ebx + 0xc]
lea ecx, [esp + 0x54]
xor edi, edi
push ebx
push ecx
mov dword [ebx + 0xc], edi
mov word [esp + 0x70], 1
mov dword [esp + 0x60], 0x453d60
mov dword [esp + 0x64], 0x453c30
mov dword [esp + 0x74], edi
call fcn.0044e710
add esp, 8
cmp word [esp + 0x68], di
mov dword [ebx + 0xc], esi
je 0x454b30
mov edx, dword [ebx + 0x14]
cmp dword [edx], 2
jg 0x454b4a
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
add dword [eax + 0x28], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], 5
jmp 0x4545fa
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x8c]
xor edi, edi
test byte [ebp + 0x10], 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], 2
je 0x454b6f
mov dword [esi + 0x8c], edi
jmp 0x454b7f
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x454b7f
add dword [esi + 0x2c], 1
mov edi, dword [esi + 0x2c]
mov dword [eax], edi
mov ecx, dword [esp + 0x18]
push ecx
push ebx
push esi
call fcn.00454dd0
add esp, 0xc
test edi, edi
je 0x454ba5
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
call fcn.00454390
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x40]
mov dword [esi + 0x8c], edx
jmp 0x4545fa
cmp al, 0x8a
jne 0x454bc2
mov ecx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [eax]
jmp 0x454bc7
mov ecx, 1
xor eax, eax
test ecx, ecx
jle 0x454bda
lea ecx, [ecx]
mov dword [edx + eax*4], eax
add eax, 1
cmp eax, ecx
jl 0x454bd0
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esp + 0x18]
pop edi
mov eax, esi
pop esi
mov dword [ecx], edx
pop ebx
mov esp, ebp
pop ebp
ret