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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov eax, dword [0x53a024]
xor eax, esp
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [esp + 0x24], eax
mov ebx, edx
mov eax, dword [ecx + 0x20]
push edi
push 0x30
mov dword [esp + 0x30], ebx
mov esi, dword [eax]
lea eax, [ecx + 0x34]
push esi
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x64], 0
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4aa622
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00454158
mov edi, eax
test edi, edi
jne 0x454a23
mov eax, dword [esi + 0x44]
mov dword [esp + 0x38], eax
test eax, eax
je 0x454a8d
mov eax, dword [ebp + 0x14]
mov ebx, dword [esi + 8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
add eax, 0x18
cdq
mov ecx, eax
mov dword [esp + 0x60], esi
mov eax, edx
mov dword [esp + 0x24], ebx
push eax
push ecx
push 0
push dword [esp + 0x44]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
call fcn.004835a0
add eax, 0x20
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
adc edx, 0
mov dword [esp + 0x1c], edx
mov ecx, eax
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4548c6
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x4aa633
inc dword [esp + 0x38]
test edx, edx
je 0x454722
cmp dword [ecx + 0x10], 0
je 0x454a5a
xor edx, edx
mov ebx, dword [ecx + 0x18]
lea edi, [esi + 0x4c]
mov eax, dword [ecx + 4]
bswap ebx
bswap edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], edx
cmp dword [esi + 0x68], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], edi
jne 0x4aa7b5
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
cmp byte [esi + 0x41], 0
jne 0x4aa6d9
mov eax, 1
lea ecx, [esp + 0x7c]
test edi, edi
je 0x4aa6e0
mov edi, dword [edi]
mov esi, dword [esi + 0x50]
test eax, eax
je 0x4aa6e9
lea ebx, [ebx]
mov eax, dword [ecx]
add eax, esi
add edi, eax
mov eax, dword [ecx + 4]
add eax, edi
add ecx, 8
add esi, eax
lea eax, [esp + 0x84]
cmp ecx, eax
jb 0x454790
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov edx, dword [ecx + 0x24]
add edx, eax
mov ecx, dword [eax]
add ecx, esi
add edi, ecx
mov ecx, dword [eax + 4]
add ecx, edi
add eax, 8
add esi, ecx
cmp eax, edx
jb 0x4547c1
mov dword [ebx], edi
mov dword [ebx + 4], esi
bswap edi
bswap esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], esi
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x7c]
mov edx, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x10], 0x18
mov ebx, edi
mov dword [esp + 0x18], eax
test edi, edi
jg 0x45481a
jl 0x4aa7c7
test edx, edx
jb 0x4aa7c7
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
push ebx
push esi
push ecx
mov eax, dword [edx]
push dword [esp + 0x24]
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x454a21
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
add esi, 0x18
mov eax, dword [esp + 0x2c]
adc ebx, edi
mov dword [esp + 0x10], eax
test ebx, ebx
jg 0x454865
jl 0x4aa85b
test esi, esi
jb 0x4aa85b
mov ecx, eax
mov edx, dword [esp + 0x24]
push ebx
push esi
push ecx
mov eax, dword [edx]
push dword [esp + 0x3c]
push edx
mov eax, dword [eax + 0xc]
call eax
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x454a21
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x58]
lea eax, [eax + 0x18]
mov dword [esp + 0x10], ecx
cdq
add dword [esp + 0x20], eax
adc dword [esp + 0x1c], edx
or word [ecx + 0x1c], 0x40
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x454708
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
test edx, edx
je 0x4548ef
cmp dword [esi + 0x68], 0
jne 0x4aa8e8
mov ecx, dword [ebp + 0x14]
and ecx, 3
mov dword [ebp + 0x14], ecx
jne 0x4aa906
xor edx, edx
cmp byte [esi + 0x2f], 0
jne 0x454b7a
mov ebx, dword [esi + 0x44]
test eax, eax
je 0x4549cd
lea ecx, [ebx + 0x21]
lea ecx, [ecx]
test edi, edi
jne 0x454a21
test byte [eax + 0x1c], 0x40
je 0x4549be
mov eax, dword [eax + 0x18]
inc ecx
mov esi, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
inc ebx
shr esi, 0xc
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
cmp dword [ecx + 0x18], esi
jle 0x454bb0
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x454bb0
lea ecx, [eax + 0x4000]
mov dword [esp + 0x48], ecx
test esi, esi
jne 0x454a62
add eax, 0x88
add eax, 0xfffffffc
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], eax
test edi, edi
jne 0x4549b6
sub ebx, esi
cmp ebx, 1
je 0x454a6d
cmp dword [eax + ebx*4], 0
lea esi, [eax + ebx*4]
jne 0x4aaa3a
imul ecx, dword [esp + 0x44], 0x17f
mov edx, ebx
mov eax, dword [esp + 0x48]
and ecx, 0x1fff
cmp word [eax + ecx*2], 0
jne 0x454a38
mov eax, dword [esp + 0x44]
mov dword [esi], eax
mov eax, dword [esp + 0x48]
mov word [eax + ecx*2], bx
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x454900
test edi, edi
jne 0x454a21
mov esi, dword [esp + 0x10]
jmp 0x4549e0
mov eax, dword [esp + 0x3c]
test eax, eax
jg 0x4aaa70
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov esi, dword [esp + 0x14]
and ecx, 0xff00
sar eax, 0x10
or eax, ecx
cmp dword [ebp + 0x10], 0
mov word [esi + 0x42], ax
mov dword [esi + 0x44], ebx
je 0x454a21
mov eax, dword [ebp + 0xc]
mov ecx, esi
inc dword [esi + 0x3c]
mov dword [esi + 0x48], eax
call fcn.00454fe8
mov dword [esi + 0xc], ebx
mov eax, edi
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00481a32
mov esp, ebp
pop ebp
ret
mov eax, edx
dec edx
test eax, eax
je 0x4aaa48
mov eax, dword [esp + 0x48]
inc ecx
and ecx, 0x1fff
cmp word [eax + ecx*2], 0
jne 0x454a38
jmp 0x4549a4
mov edx, dword [ebp + 0xc]
jmp 0x454724
shl esi, 0xc
sub esi, 0x22
jmp 0x45495e
sub ecx, eax
add eax, 4
add ecx, 0x3ffc
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x58]
add esp, 0xc
jmp 0x454978
mov ecx, dword [esi + 0x70]
mov eax, ebx
mov dword [esp + 0x94], 0x82067f37
mov dword [esp + 0x98], 0x18e22d00
bswap eax
mov dword [esp + 0x9c], eax
mov eax, ecx
bswap eax
mov dword [esp + 0xa0], eax
test ecx, ecx
je 0x454b9d
mov ecx, dword [esi + 0x58]
xor edx, edx
mov eax, dword [esi + 0x54]
xor esi, esi
mov dword [esp + 0xa8], ecx
lea ecx, [esp + 0x94]
mov dword [esp + 0xa4], eax
mov eax, dword [ecx]
add eax, edx
add esi, eax
mov eax, dword [ecx + 4]
add eax, esi
add ecx, 8
add edx, eax
lea eax, [esp + 0xac]
cmp ecx, eax
jb 0x454ae3
mov eax, esi
bswap eax
mov dword [esp + 0xac], eax
mov eax, edx
bswap eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x14]
push 0
push 0
push 0x20
mov dword [eax + 0x4c], esi
mov esi, eax
mov dword [eax + 0x24], ebx
mov byte [eax + 0x41], 0
mov dword [esi + 0x50], edx
lea edx, [esp + 0xa0]
mov eax, dword [esi + 8]
mov byte [esi + 0x2f], 1
push edx
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
call eax
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x454a21
cmp byte [esi + 0x30], al
je 0x454696
mov edx, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
sar edx, 2
and edx, 3
call fcn.004534a7
mov edi, eax
test edi, edi
je 0x454696
jmp 0x454a21
mov ecx, dword [esp + 0x14]
mov esi, dword [esi + 0x10]
mov ebx, dword [ecx + 0x14]
test ebx, ebx
jl 0x454b96
jg 0x4aa9f3
test esi, esi
jae 0x4aa9f3
mov esi, ecx
jmp 0x4548ef
lea eax, [esi + 0x54]
push eax
push 8
call fcn.00461481
add esp, 8
jmp 0x454ac4
lea eax, [esp + 0x4c]
mov edx, esi
push eax
call fcn.0045f41c
mov edi, eax
add esp, 4
test edi, edi
jne 0x4549b6
mov eax, dword [esp + 0x4c]
jmp 0x454947
mov ebx, dword [esi + 0x10]
inc ebx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x2c]
jmp 0x454672
cmp dword [ecx + 0x10], 0
jne 0x4aa641
test edx, edx
jne 0x454710
mov edx, dword [ecx + 0x18]
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
mov dword [esp + 0x60], 0
call fcn.0050ef92
mov esi, dword [esp + 0x60]
add esp, 4
cmp esi, ebx
jb 0x4aa6c9
push dword [esp + 0x40]
lea eax, [esi - 1]
push dword [esp + 0x48]
push 0
push eax
call fcn.004835a0
mov ecx, dword [esp + 0x14]
mov edi, eax
add edi, 0x38
adc edx, 0
mov eax, dword [ecx + 0x68]
test eax, eax
je 0x4aa68d
cmp esi, eax
jae 0x4aa690
mov dword [ecx + 0x68], esi
mov esi, ecx
push edx
mov edx, dword [esp + 0x38]
push edi
mov eax, dword [esi + 8]
push dword [esp + 0x34]
push dword [edx + 4]
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x454a21
mov ecx, dword [esp + 0x34]
mov eax, 0xffbf
and word [ecx + 0x1c], ax
jmp 0x4548ac
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0x10]
jmp 0x454710
xor eax, eax
jmp 0x454771
xor esi, esi
xor edi, edi
jmp 0x454782
mov ecx, ebx
mov eax, ebx
and eax, 0xff00
shl ecx, 0x10
add ecx, eax
mov eax, ebx
shr eax, 8
and eax, 0xff00
shl ecx, 8
add eax, esi
shr ebx, 0x18
add eax, ecx
mov ecx, edx
add ebx, eax
and ecx, 0xff00
mov eax, edx
add edi, ebx
mov ebx, dword [esp + 0x30]
shl eax, 0x10
add ecx, eax
mov eax, edx
shr eax, 8
and eax, 0xff00
shl ecx, 8
add eax, esi
mov esi, edx
add eax, ecx
shr esi, 0x18
mov ecx, dword [esp + 0x14]
add esi, eax
mov eax, dword [esp + 0x10]
add esi, edi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [ecx + 0x24]
add eax, ebx
mov dword [esp + 0x18], eax
mov edx, dword [ebx]
mov ecx, edx
mov eax, edx
shl ecx, 0x10
and eax, 0xff00
add ecx, eax
mov eax, edx
shr eax, 8
and eax, 0xff00
shl ecx, 8
add eax, esi
shr edx, 0x18
add eax, ecx
add edx, eax
add edi, edx
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, edx
and eax, 0xff00
shl ecx, 0x10
add ecx, eax
add ebx, 8
mov eax, edx
shl ecx, 8
shr eax, 8
and eax, 0xff00
shr edx, 0x18
add eax, edi
add eax, ecx
add edx, eax
add esi, edx
cmp ebx, dword [esp + 0x18]
jb 0x4aa752
mov ebx, dword [esp + 0x10]
jmp 0x4547d5
xor eax, eax
lea edi, [esp + 0x84]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jmp 0x4547ec
mov ecx, edx
mov eax, edi
add ecx, 0x18
adc eax, 0
mov dword [esp + 0x4c], eax
js 0x45481a
jg 0x4aa7e5
test ecx, ecx
jb 0x45481a
mov ecx, dword [esp + 0x24]
mov ebx, edx
push edi
push edx
neg ebx
lea edx, [esp + 0x84]
mov eax, dword [ecx]
push ebx
push edx
push ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], ebx
call eax
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x454a21
mov eax, ebx
lea ecx, [esp + 0x7c]
cdq
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x20]
add esi, eax
mov edx, dword [ebp + 0x14]
adc ebx, dword [esp + 0x1c]
add eax, 0x18
add dword [esp + 0x18], ecx
and edx, 3
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
call fcn.004534a7
mov ecx, dword [esp + 0x10]
mov edi, eax
test ecx, ecx
je 0x454836
test edi, edi
je 0x45481e
jmp 0x454836
cdq
add eax, esi
adc edx, ebx
mov dword [esp + 0x4c], edx
js 0x4aa8df
jg 0x4aa86c
test eax, eax
jb 0x4aa8df
mov edx, dword [esp + 0x24]
mov eax, esi
mov ecx, esi
mov dword [esp + 0x10], eax
push ebx
neg ecx
mov eax, dword [edx]
push esi
push ecx
push dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
push edx
mov dword [esp + 0x2c], ecx
call eax
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x454a21
mov ecx, dword [esp + 0x18]
mov eax, ecx
cdq
add esi, eax
mov eax, dword [esp + 0x10]
adc ebx, edx
add eax, dword [esp + 0x2c]
add dword [esp + 0x30], ecx
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x24]
and edx, 3
mov dword [esp + 0x10], eax
call fcn.004534a7
mov ecx, dword [esp + 0x10]
mov edi, eax
test ecx, ecx
je 0x45487f
test edi, edi
je 0x454867
jmp 0x45487f
mov ecx, dword [esp + 0x10]
jmp 0x454867
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.00518833
mov edi, eax
test edi, edi
jne 0x454a21
mov eax, dword [esp + 0x28]
jmp 0x4548d4
cmp byte [esi + 0x31], 0
je 0x4aa9d2
mov ecx, dword [esi + 8]
call fcn.0050c419
cdq
mov ebx, eax
mov esi, edx
add ebx, dword [esp + 0x20]
push edx
adc esi, dword [esp + 0x20]
sub ebx, 1
push eax
sbb esi, 0
push esi
push ebx
call fcn.004835e0
mov ecx, dword [esp + 0x20]
sub ebx, eax
mov dword [esp + 0x68], ebx
sbb esi, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], esi
cmp ebx, ecx
jne 0x4aa957
cmp esi, edx
jne 0x4aa957
mov eax, 1
jmp 0x4aa959
xor eax, eax
mov dword [esp + 0x18], eax
cmp edx, esi
jg 0x4aa9c1
jl 0x4aa967
cmp ecx, ebx
jae 0x4aa9c1
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
push esi
push ecx
push dword [ebp + 0xc]
mov edx, ebx
lea ecx, [esp + 0x6c]
call fcn.00518963
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x454a21
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
lea eax, [eax + 0x18]
cdq
add ecx, eax
mov dword [esp + 0x20], ecx
adc esi, edx
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
cmp esi, dword [esp + 0x6c]
jl 0x4aa96f
jg 0x4aa9b7
cmp ecx, dword [esp + 0x68]
jb 0x4aa96f
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
jmp 0x4aa9c7
mov ebx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [esp + 0x14]
test eax, eax
je 0x4aa9ea
mov ecx, dword [ebp + 0x14]
mov edx, ecx
mov ecx, ebx
call fcn.004534a7
mov edx, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0x28]
jmp 0x4548e5
mov eax, dword [esp + 0x28]
jmp 0x4548e5
push dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x48]
add eax, edx
push 0
push eax
call fcn.004835a0
add eax, 0x20
adc edx, 0
cmp edx, ebx
jl 0x4aaa1d
jg 0x4aaa19
cmp eax, esi
jbe 0x4aaa1d
mov esi, eax
mov ebx, edx
push ebx
push esi
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.005187c2
mov eax, dword [esp + 0x30]
add esp, 8
mov byte [esi + 0x2f], 0
jmp 0x4548ef
mov ecx, dword [esp + 0x14]
call fcn.00518254
jmp 0x454985
push 0x40ee44
push 0xe809
push 0x40ede8
push 0x40edcc
push 0xb
call fcn.00512fdf
add esp, 0x14
mov edi, 0xb
jmp 0x4549b2
push dword [esi + 0x18]
mov ecx, dword [esp + 0x18]
inc ebx
dec eax
mov edx, ebx
mov dword [esp + 0x40], eax
call fcn.005183ca
mov edi, eax
add esp, 4
test edi, edi
je 0x4549e0
jmp 0x454a21