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

Disassembly:
sub esp, 0x4c
push esi
mov esi, dword [esp + 0x68]
push edi
xor edi, edi
mov eax, dword [esi + 4]
mov dword [esp + 0x30], edi
cmp eax, edi
mov dword [esp + 0x14], edi
ja 0x453e0f
cmp dword [esi], 0xffffffff
jb 0x453e17
pop edi
xor eax, eax
pop esi
add esp, 0x4c
ret
mov eax, dword [esp + 0x60]
push ebx
push ebp
mov ebx, dword [eax]
mov dword [esp + 0x40], ebx
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x170]
mov edx, ecx
add edx, eax
mov eax, dword [esp + 0x70]
lea eax, [edx + eax - 1]
xor edx, edx
div ecx
mov dword [esp + 0x44], eax
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
push ecx
call fcn.004df770
mov ebp, eax
mov eax, dword [esi]
add esp, 4
mov ecx, 3
xor edx, edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], edi
call fcn.00526fd0
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov cl, byte [ebx + 0xc4]
mov dword [esp + 0x50], edx
mov esi, ecx
xor ecx, ecx
mov cl, byte [ebx + 0x7c]
add ecx, esi
call fcn.00526f40
mov ecx, esi
shl eax, cl
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
cmp eax, 8
ja 0x454630
jb 0x453eba
mov eax, dword [esp + 0x4c]
test eax, eax
jae 0x454630
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x45406d
mov edx, dword [eax + 8]
mov esi, dword [ebx + 0x170]
add edx, esi
cmp edi, edx
jb 0x454444
push eax
push 0
call fcn.0044f200
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
mov edi, dword [ebx + 0x174]
add esp, 8
sub ecx, edi
test edi, edi
mov dword [esp + 0x24], ecx
jle 0x453f73
lea eax, [esi*8]
sub eax, esi
shl eax, 2
mov dword [esp + 0x30], eax
mov ecx, dword [ebp + 0x10]
cmp ecx, edi
jl 0x453f1d
mov ecx, edi
mov eax, ecx
mov dword [esp + 0x18], ecx
cdq
sub dword [ebp + 0x10], eax
sbb dword [ebp + 0x14], edx
add dword [ebp + 8], eax
adc dword [ebp + 0xc], edx
add dword [ebp], eax
mov eax, dword [ebp + 4]
adc eax, edx
mov edx, dword [ebp + 0x14]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x10]
or eax, edx
jne 0x453f69
mov edx, dword [esp + 0x30]
dec esi
sub edx, 0x1c
test esi, esi
mov dword [esp + 0x30], edx
je 0x453f69
mov ecx, edx
lea edx, [ebp + 0x1c]
push ecx
push edx
push ebp
call fcn.00528840
mov ecx, dword [esp + 0x24]
add esp, 0xc
sub edi, ecx
test edi, edi
jg 0x453f14
mov dword [esp + 0x14], esi
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x170]
mov edx, dword [esp + 0x70]
mov eax, ecx
add eax, edi
lea eax, [eax + edx - 1]
xor edx, edx
div ecx
mov ecx, dword [esp + 0x24]
dec eax
mov dword [esp + 0x3c], eax
inc eax
cmp eax, ecx
jle 0x454120
xor eax, eax
xor ecx, ecx
mov al, byte [ebx + 0xc4]
mov cl, byte [ebx + 0x7c]
mov edi, eax
xor eax, eax
add ecx, edi
mov edx, 8
call fcn.00526f40
mov ecx, edi
shl eax, cl
cmp dword [esp + 0x28], eax
jae 0x454120
mov edi, dword [esp + 0x44]
lea edx, [esi*8]
push 0
lea ecx, [esp + 0x14]
sub edx, esi
push 0
push ecx
sub edi, esi
lea ecx, [ebp + edx*4]
xor eax, eax
push ecx
xor ecx, ecx
mov dword [esp + 0x20], edi
mov al, byte [ebx + 0xc4]
mov cl, byte [ebx + 0x7c]
push 0
mov dword [esp + 0x4c], eax
push 0
add ecx, eax
push 8
xor eax, eax
mov edx, 8
call fcn.00526f40
mov ecx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x84]
shl esi, cl
push 0
sub esi, eax
push esi
push 0
push eax
push edx
push 0
call fcn.0044c090
add esp, 0x34
mov dword [esp + 0x38], eax
test eax, eax
jne 0x454630
mov eax, dword [esp + 0x10]
cmp eax, edi
jne 0x454076
mov esi, dword [esp + 0x14]
lea ecx, [eax + esi]
lea edx, [ecx*8]
sub edx, ecx
mov ecx, dword [ebp + edx*4 - 0x1c]
mov edi, dword [ebp + edx*4 - 0xc]
lea edx, [ebp + edx*4]
add ecx, edi
mov dword [esp + 0x28], ecx
jmp 0x4540a3
mov esi, dword [esp + 0x14]
jmp 0x453f73
xor eax, eax
xor ecx, ecx
mov al, byte [ebx + 0xc4]
mov cl, byte [ebx + 0x7c]
mov esi, eax
xor eax, eax
add ecx, esi
mov edx, 8
call fcn.00526f40
mov ecx, esi
mov esi, dword [esp + 0x14]
shl eax, cl
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + esi]
mov dword [esp + 0x1c], esi
cmp esi, ecx
jge 0x45411a
lea ecx, [esi + 1]
lea edx, [ecx*8]
sub edx, ecx
mov ecx, esi
lea edi, [ebp + edx*4]
cmp dword [edi - 0x14], 0xfffffffe
jne 0x4540f7
cmp dword [edi - 0x10], 0xffffffff
jne 0x4540f7
dec eax
mov dword [esp + 0x10], eax
sub eax, ecx
add eax, esi
je 0x45410c
lea ecx, [eax*8]
lea edx, [edi - 0x1c]
sub ecx, eax
shl ecx, 2
push ecx
push edi
push edx
call fcn.00528840
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x45410c
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x24]
add edx, eax
inc ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ecx
add edi, 0x1c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
add edx, esi
cmp ecx, edx
jl 0x4540c0
add esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x454604
mov edi, dword [ebp]
mov cl, byte [ebx + 0xc4]
mov eax, edi
shr eax, cl
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x174]
cdq
cmp ecx, edx
jb 0x45419f
ja 0x454150
mov edx, dword [ebp + 0x10]
cmp edx, eax
jb 0x45419f
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [ebx + 0x80]
mov esi, eax
mov eax, dword [ebp + 8]
mov ecx, esi
call fcn.00526f40
mov ecx, dword [ebx + 0x58]
push 0
push ecx
push 0
push eax
call fcn.00526dd0
mov ecx, 1
mov dword [esp + 0x38], ecx
mov ecx, esi
mov esi, dword [esp + 0x38]
shl esi, cl
mov ecx, dword [ebp + 8]
dec esi
and esi, ecx
xor ecx, ecx
add eax, esi
adc edx, ecx
mov cl, byte [ebx + 0x100]
call fcn.00526fd0
jmp 0x4541a5
or eax, 0xffffffff
or edx, 0xffffffff
lea ecx, [esp + 0x2c]
push 0
push ecx
push edx
mov edx, dword [esp + 0x74]
push eax
push edi
push edx
push 0
call fcn.0044ef80
add esp, 0x1c
mov dword [esp + 0x38], eax
test eax, eax
jne 0x454630
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4541dc
sub eax, dword [ebx + 0x174]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
xor edi, edi
xor esi, esi
xor eax, eax
cmp ecx, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
jle 0x4542d4
jmp 0x454204
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x24]
jge 0x4542d4
cmp edi, dword [esp + 0x20]
jle 0x45425a
lea edx, [eax*8]
sub edx, eax
mov eax, dword [ebx + 0x174]
lea ecx, [ebp + edx*4]
cdq
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x14]
cmp eax, edx
jb 0x454240
ja 0x454256
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x54]
cmp edx, eax
jae 0x454256
mov eax, dword [ecx]
mov ecx, dword [esp + 0x68]
add eax, esi
push 0
push eax
push ecx
push 0
call fcn.0044efb0
add esp, 0x10
mov dword [esp + 0x20], edi
mov edi, dword [ebx + 0x174]
mov dword [esp + 0x18], 0
test edi, edi
jle 0x4542ba
mov eax, dword [esp + 0x30]
lea edx, [eax*8]
sub edx, eax
lea ecx, [ebp + edx*4 + 0x10]
mov eax, dword [ecx]
sub eax, esi
cmp edi, eax
jge 0x454287
mov eax, edi
mov edx, dword [esp + 0x18]
add esi, eax
add edx, eax
mov eax, esi
mov dword [esp + 0x18], edx
cdq
cmp eax, dword [ecx]
jne 0x4542ad
cmp edx, dword [ecx + 4]
jne 0x4542ad
mov edx, dword [esp + 0x30]
xor esi, esi
inc edx
add ecx, 0x1c
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x18]
inc eax
cmp eax, edi
mov dword [esp + 0x18], eax
jl 0x45427d
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
add edx, edi
cmp ecx, eax
mov dword [esp + 0x1c], edx
jg 0x4541fc
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov cl, byte [ebx + 0xc4]
xor edx, edx
mov dl, byte [ebx + 0x7c]
add ecx, edx
xor edx, edx
mov dword [esp + 0x3c], ecx
call fcn.00526fd0
cmp dword [esp + 0x50], edx
ja 0x454308
jb 0x454300
cmp dword [esp + 0x4c], eax
jae 0x454308
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + 8]
mov dword [esp + 0x30], edi
mov eax, dword [edi]
mov edx, eax
mov ecx, eax
and edx, 0xff0000
shr ecx, 0x10
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
shr edx, 8
shl ecx, 8
or edx, ecx
cmp edx, 0x58444433
jne 0x454345
add edi, 0x40
jmp 0x454348
add edi, 0x10
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov esi, 1
mov dword [esp + 0x1c], edi
shl esi, cl
dec esi
and esi, eax
jne 0x454398
cmp edx, 0x58444433
mov ecx, eax
jne 0x454381
mov eax, dword [esp + 0x50]
add ecx, 0x40
adc eax, 0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
jmp 0x454444
mov eax, dword [esp + 0x50]
add ecx, 0x10
adc eax, 0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
jmp 0x454444
mov ecx, dword [esp + 0x30]
mov edx, edi
sub edx, ecx
cmp edx, esi
jge 0x4543f2
xor eax, eax
xor ecx, ecx
mov ax, word [edi]
mov ch, al
shr eax, 8
or ecx, eax
cmp ecx, 0xffff
jne 0x4543cd
xor eax, eax
xor edx, edx
mov ax, word [edi + 2]
mov dh, al
shr eax, 8
or edx, eax
add edi, edx
jmp 0x4543e2
mov ecx, dword [esp + 0x68]
xor eax, eax
mov al, byte [edi + 8]
push eax
push ecx
call fcn.00453dd0
add esp, 8
add edi, eax
mov ecx, dword [esp + 0x30]
mov edx, edi
sub edx, ecx
cmp edx, esi
jl 0x4543a4
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x50]
xor eax, eax
mov al, byte [ebx + 0xc4]
xor ecx, ecx
mov cl, byte [ebx + 0x7c]
lea esi, [eax + ecx]
mov eax, dword [esp + 0x4c]
mov ecx, esi
call fcn.00526f40
mov ecx, esi
xor edx, edx
call fcn.00526fd0
mov esi, dword [esp + 0x30]
mov ecx, edi
sub ecx, esi
xor esi, esi
add eax, ecx
mov ecx, dword [esp + 0x30]
adc edx, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x170]
add edx, ecx
cmp edi, edx
jae 0x4545e9
xor eax, eax
xor ecx, ecx
mov ax, word [edi]
mov ch, al
shr eax, 8
or ecx, eax
cmp ecx, 0xffff
jne 0x454489
xor eax, eax
xor edx, edx
mov ax, word [edi + 2]
mov ecx, dword [esp + 0x4c]
mov dh, al
shr eax, 8
or eax, edx
add edi, eax
cdq
add ecx, eax
mov eax, dword [esp + 0x50]
adc eax, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
jmp 0x4545e9
mov ecx, dword [esp + 0x68]
xor eax, eax
mov al, byte [edi + 8]
push eax
push ecx
call fcn.00453dd0
mov esi, dword [edi]
mov edi, dword [edi + 4]
add esp, 8
mov dword [esp + 0x48], eax
mov ebp, edi
mov ecx, 0x10
push 0
mov eax, esi
mov edx, edi
xor ebx, ebx
and ebp, 0xff0000
call fcn.00526f40
or ebx, eax
or ebp, edx
mov ecx, 0x10
mov eax, ebx
mov edx, ebp
call fcn.00526f40
mov ebx, edi
xor ecx, ecx
and ebx, 0xff00
or eax, ecx
or edx, ebx
mov ecx, 0x10
call fcn.00526f40
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.00526f40
mov ebx, eax
mov ebp, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.00526fd0
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.00526fd0
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.00526fd0
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.00526fd0
or ebp, edx
mov edx, dword [esp + 0x54]
or ebx, eax
mov eax, dword [esp + 0x50]
push ebp
push ebx
mov ecx, 3
call fcn.00526f40
mov ecx, dword [esp + 0x78]
push edi
mov edi, dword [esp + 0x2c]
and eax, 0x7fffffff
xor edx, edx
push eax
mov dl, byte [edi + 8]
lea eax, [edi + 9]
push edx
push eax
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
call dword [esp + 0xa0]
add esp, 0x28
test eax, eax
jne 0x45462c
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov eax, ecx
cdq
add edi, ecx
add ebx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], edi
adc esi, edx
cmp eax, ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
jbe 0x4545d9
sub eax, ecx
mov dword [esp + 0x70], eax
jmp 0x4545e1
mov dword [esp + 0x70], 0
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x34]
cmp dword [esp + 0x50], 8
jb 0x453eba
ja 0x454630
mov eax, dword [esp + 0x4c]
test eax, eax
jb 0x453eba
jmp 0x454630
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [ebx + 0xc4]
xor edx, edx
mov esi, ecx
shr eax, cl
xor ecx, ecx
mov cl, byte [ebx + 0x7c]
add ecx, esi
call fcn.00526fd0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
jmp 0x454630
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
cmp edx, 7
jb 0x45464e
ja 0x454642
cmp dword [esp + 0x4c], 0xfffffff8
jbe 0x45464e
mov eax, dword [esp + 0x74]
mov dword [eax], 0x7fffffff
jmp 0x45466a
mov eax, dword [esp + 0x4c]
mov ecx, 3
call fcn.00526f40
mov ecx, eax
mov eax, dword [esp + 0x74]
and ecx, 0x7fffffff
mov dword [eax], ecx
push ebp
mov dword [eax + 4], 0
call fcn.004df7a0
mov eax, dword [esp + 0x30]
add esp, 4
test eax, eax
pop ebp
pop ebx
je 0x45468f
push eax
push 0
call fcn.0044f200
add esp, 8
mov eax, dword [esp + 0x30]
pop edi
pop esi
add esp, 0x4c
ret