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

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x11c
push ebx
push ebp
push esi
lea ecx, [eax + 8]
push edi
xor eax, eax
mov edx, dword [ecx - 8]
add ecx, 0xc
mov dword [esp + eax + 0x94], edx
mov edx, dword [ecx - 0x10]
mov dword [esp + eax + 0xa0], edx
mov edx, dword [ecx - 0xc]
mov dword [esp + eax + 0x88], edx
add eax, 4
cmp eax, 0xc
jl 0x452a83
mov eax, dword [esp + 0x130]
xor esi, esi
mov dword [esp + 0x20], esi
test dword [eax + 4], 0xff
jl 0x4533de
mov ebx, dword [esp + 0x60]
jmp 0x452ad0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
push 0
push 0
mov eax, dword [ecx + 8]
lea ecx, [esp + 0x50]
push ecx
push esi
mov edx, dword [eax]
push eax
call dword [edx + 0x40]
mov eax, dword [edi]
mov ecx, esi
sar eax, cl
cmp eax, 4
mov dword [esp + 0x58], eax
jg 0x452b08
mov dword [esp + 0x58], 4
mov eax, dword [edi + 4]
mov ecx, esi
sar eax, cl
cmp eax, 4
jg 0x452b19
mov eax, 4
mov edi, dword [edi + esi*4 + 0xc]
mov dword [esp + 0x64], eax
test eax, eax
mov dword [esp + 0x30], 0
jle 0x453361
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov esi, dword [0x5c671c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x10], eax
test ecx, ecx
mov dword [esp + 0x2c], 0
jle 0x453335
xor edx, edx
xor ecx, ecx
mov dl, byte [edi]
mov cl, byte [edi + 2]
mov esi, edx
xor eax, eax
mov al, byte [edi + 1]
xor edx, edx
mov dl, byte [edi + 3]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], edx
xor ecx, ecx
xor edx, edx
mov cl, byte [edi + 4]
mov dl, byte [edi + 5]
and al, 1
mov dword [esp + 0x34], ecx
fild dword [esp + 0x24]
mov byte [esp + 0x28], al
lea eax, [esp + 0x88]
mov dword [esp + 0x44], edx
lea ecx, [esp + 0xa0]
push eax
lea edx, [esp + 0x98]
push ecx
push edx
sub esp, 8
mov ebp, dword [edi + 6]
add edi, 6
lea eax, [esp + 0x4c]
fstp dword [esp + 4]
fild dword [esp + 0x54]
add edi, 4
mov dword [esp + 0x64], edi
fstp dword [esp]
push esi
push eax
call fcn.00453400
fild dword [esp + 0x60]
add esp, 0x1c
lea ecx, [esp + 0x88]
lea edx, [esp + 0xa0]
lea eax, [esp + 0x94]
push ecx
push edx
push eax
mov ecx, dword [esp + 0x28]
sub esp, 8
lea edx, [esp + 0x50]
fstp dword [esp + 4]
fild dword [esp + 0x48]
fstp dword [esp]
push ecx
push edx
call fcn.00453400
mov eax, dword [esp + 0x15c]
add esp, 0x1c
test eax, eax
mov dword [esp + 0x1c], 0
jle 0x452c85
mov eax, dword [esp + 0x13c]
add eax, 0xc
mov cl, byte [eax - 0xc]
test cl, cl
je 0x452c6e
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax]
add ecx, 4
cmp edx, ecx
jge 0x452c6e
mov esi, dword [esp + 0x30]
mov ecx, dword [eax + 4]
add esi, 4
cmp ecx, esi
jge 0x452c6e
mov esi, dword [eax + 8]
add esi, edx
mov edx, dword [esp + 0x2c]
cmp esi, edx
jle 0x452c6e
mov edx, dword [eax + 0xc]
add edx, ecx
mov ecx, dword [esp + 0x30]
cmp edx, ecx
jg 0x452d13
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x140]
inc ecx
add eax, 0x1c
cmp ecx, edx
mov dword [esp + 0x1c], ecx
jl 0x452c2e
mov eax, dword [0x5c671c]
dec eax
je 0x45321f
dec eax
je 0x452fb7
lea esi, [esp + 0xec]
mov dword [esp + 0x24], 0x10
push 0xff
push 0
push 0
push 0
mov ecx, esi
call fcn.004121e0
mov eax, dword [esp + 0x24]
add esi, 4
dec eax
mov dword [esp + 0x24], eax
jne 0x452ca7
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xec]
push edx
push eax
push ebp
push ecx
lea edx, [esp + 0x4c]
mov ecx, esp
push edx
call fcn.0047c720
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.0047c720
call fcn.00453980
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x104]
push edx
push eax
call fcn.004536d0
add esp, 0x20
jmp 0x453310
lea eax, [esp + 0xae]
mov ecx, 0x10
mov byte [eax - 2], 0
mov byte [eax - 1], 0
mov byte [eax], 0
mov byte [eax + 1], 0xff
add eax, 4
dec ecx
jne 0x452d1f
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0xac]
push eax
push ecx
push ebp
push ecx
lea edx, [esp + 0x4c]
mov ecx, esp
push edx
call fcn.0047c720
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.0047c720
call fcn.00453980
mov esi, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
add esp, 0x14
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], ecx
cmp byte [esi], 0
je 0x452f82
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x10]
sub ecx, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x5c], ecx
test ecx, ecx
jl 0x452f69
mov edx, dword [esi + 0x18]
cmp ecx, edx
mov dword [esp + 0x60], edx
jge 0x452f69
mov eax, dword [esp + 0x2c]
mov edi, dword [esi + 0xc]
sub eax, edi
mov dword [esp + 0x18], 0
mov edi, eax
inc eax
imul eax, edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], eax
test edi, edi
jl 0x452f40
mov eax, dword [esi + 0x14]
cmp edi, eax
jge 0x452f40
mov ebp, dword [esi + 4]
cmp ebp, 3
ja case.default.0x452de9
jmp dword [ebp*4 + 0x4533ec]
mov edx, dword [esi + 8]
imul ecx, eax
mov eax, dword [esp + 0x20]
mov edx, dword [edx + eax*4 + 0xc]
add edx, ecx
xor ebx, ebx
mov bl, byte [edx + edi]
jmp case.default.0x452de9
sub eax, edi
mov ebx, dword [esp + 0x20]
dec eax
imul eax, edx
mov edx, dword [esi + 8]
mov ebp, dword [edx + ebx*4 + 0xc]
add eax, ebp
xor ebx, ebx
mov bl, byte [eax + ecx]
jmp case.default.0x452de9
sub edx, ecx
mov ecx, dword [esp + 0x20]
imul edx, eax
mov eax, dword [esi + 8]
add edx, dword [eax + ecx*4 + 0xc]
sub edx, edi
xor ebx, ebx
mov bl, byte [edx - 1]
jmp case.default.0x452de9
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [edx + eax*4 + 0xc]
mov eax, dword [esp + 0x54]
sub edx, ecx
xor ebx, ebx
mov bl, byte [edx + eax - 1]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, edx
test bl, 1
lea ebp, [esp + ecx*4 + 0xac]
je 0x452e75
mov byte [ebp], bl
mov byte [ebp + 1], bl
mov byte [ebp + 2], bl
jmp 0x452f40
cmp ebx, 0x80
je 0x452f40
xor eax, eax
xor edx, edx
mov al, byte [ebp + 1]
mov dl, byte [ebp + 2]
xor ecx, ecx
cmp ebx, 0x80
mov cl, byte [ebp]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
jle 0x452efb
add ebx, 0xffffff80
xor eax, eax
test ebx, ebx
setle al
dec eax
mov esi, 0x80
and ebx, eax
sub esi, ebx
mov eax, esi
lea edi, [ebx + ebx]
imul eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov ecx, eax
mov eax, esi
imul eax, dword [esp + 0x14]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
add eax, edi
mov dword [esp + 0x14], eax
mov eax, esi
imul eax, dword [esp + 0x34]
cdq
mov esi, dword [esp + 0x40]
and edx, 0x7f
add eax, edx
sar ecx, 7
sar eax, 7
add ecx, edi
add eax, edi
mov edi, dword [esp + 0x44]
jmp 0x452f2f
mov eax, ecx
imul eax, ebx
cdq
and edx, 0x7f
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x14]
imul eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
imul eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar ecx, 7
sar eax, 7
mov byte [ebp], cl
mov cl, byte [esp + 0x14]
mov byte [ebp + 1], cl
mov byte [ebp + 2], al
mov byte [ebp + 3], 0xff
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
inc eax
add ecx, edx
inc edi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x5c]
cmp eax, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], edi
jl 0x452dce
mov eax, dword [esp + 0x1c]
inc ecx
add eax, 4
mov dword [esp + 0x5c], ecx
cmp eax, 0x10
mov dword [esp + 0x1c], eax
jl 0x452d98
mov eax, dword [esp + 0x24]
add esi, 0x1c
dec eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], eax
jne 0x452d7a
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.004536d0
add esp, 0xc
jmp 0x45330c
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x7c]
call fcn.0047c720
lea edx, [esp + 0x38]
lea ecx, [esp + 0x80]
push edx
call fcn.0047c720
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x81]
mov edx, dword [esp + 0x82]
mov esi, dword [esp + 0x78]
and eax, 0xf8
and ecx, 0xfc
shl eax, 5
or eax, ecx
mov ecx, dword [esp + 0x79]
and edx, 0xff
and esi, 0xf8
shl eax, 3
shr edx, 3
or eax, edx
mov edx, dword [esp + 0x7a]
shl esi, 5
and ecx, 0xfc
and edx, 0xff
or esi, ecx
mov cl, byte [esp + 0x28]
shl esi, 3
shr edx, 3
or esi, edx
test cl, cl
je 0x453076
mov ecx, dword [esp + 0x10]
mov word [ecx], 0xff
mov ecx, dword [esp + 0x10]
add ecx, 2
mov dword [esp + 0x10], ecx
mov word [ecx], 0
mov ecx, dword [esp + 0x10]
add ecx, 2
mov dword [esp + 0x10], ecx
mov dword [ecx], 0
mov ecx, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x4531ed
mov edx, ebp
xor ecx, ecx
and edx, 3
mov dword [esp + 0x18], ecx
cmp dl, 3
mov dword [esp + 0x14], ecx
jne 0x45308f
mov ecx, 1
mov edx, ebp
and edx, 0xc
cmp dl, 0xc
jne 0x45309c
or ecx, 8
mov edx, ebp
and edx, 0x30
cmp dl, 0x30
jne 0x4530a9
or ecx, 0x40
mov edx, ebp
and edx, 0xc0
cmp dl, 0xc0
jne 0x4530b9
or ch, 2
mov edi, ebp
sar edi, 8
mov edx, edi
and edx, 3
cmp dl, 3
jne 0x4530cb
or ch, 0x10
mov edx, edi
and edx, 0xc
cmp dl, 0xc
jne 0x4530d8
or ch, 0x80
mov edx, edi
and edx, 0x30
cmp dl, 0x30
jne 0x4530ea
mov dword [esp + 0x18], 4
mov edx, edi
and edx, 0xc0
cmp dl, 0xc0
jne 0x4530fc
or dword [esp + 0x18], 0x20
sar edi, 8
mov edx, edi
and edx, 3
cmp dl, 3
jne 0x453114
mov edx, dword [esp + 0x18]
or dh, 1
mov dword [esp + 0x18], edx
mov edx, edi
and edx, 0xc
cmp dl, 0xc
jne 0x453129
mov edx, dword [esp + 0x18]
or dh, 8
mov dword [esp + 0x18], edx
mov edx, edi
and edx, 0x30
cmp dl, 0x30
jne 0x45313e
mov edx, dword [esp + 0x18]
or dh, 0x40
mov dword [esp + 0x18], edx
mov edx, edi
and edx, 0xc0
cmp dl, 0xc0
jne 0x453153
mov dword [esp + 0x14], 2
sar edi, 8
mov edx, edi
and edx, 3
cmp dl, 3
jne 0x453165
or dword [esp + 0x14], 0x10
mov edx, edi
and edx, 0xc
cmp dl, 0xc
jne 0x45317a
mov edx, dword [esp + 0x14]
or dl, 0x80
mov dword [esp + 0x14], edx
mov edx, edi
and edx, 0x30
cmp dl, 0x30
jne 0x45318f
mov edx, dword [esp + 0x14]
or dh, 4
mov dword [esp + 0x14], edx
mov edx, edi
and edx, 0xc0
cmp dl, 0xc0
jne 0x4531a7
mov edx, dword [esp + 0x14]
or dh, 0x20
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
mov word [edx], 0xff
mov edx, dword [esp + 0x10]
mov word [edx + 2], cx
mov ecx, dword [esp + 0x10]
mov dx, word [esp + 0x18]
mov word [ecx + 4], dx
mov ecx, dword [esp + 0x10]
mov dx, word [esp + 0x14]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x10]
add edx, 8
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], edx
mov esi, ecx
xor ebp, 0x55555555
mov ecx, dword [esp + 0x10]
mov word [ecx], ax
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
mov word [eax], si
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
mov dword [eax], ebp
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
jmp 0x453310
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x70]
push edx
mov edi, ebp
call fcn.0047c720
lea eax, [esp + 0x38]
lea ecx, [esp + 0x68]
push eax
call fcn.0047c720
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x69]
mov edx, dword [esp + 0x6a]
mov eax, dword [esp + 0x70]
and esi, 0xf8
and ecx, 0xfc
shl esi, 5
or esi, ecx
mov ecx, dword [esp + 0x71]
and edx, 0xff
and eax, 0xf8
shl esi, 3
shr edx, 3
or esi, edx
mov edx, dword [esp + 0x72]
shl eax, 5
and ecx, 0xfc
and edx, 0xff
or eax, ecx
xor ecx, ecx
shl eax, 3
shr edx, 3
or eax, edx
mov edx, dword [esp + 0x28]
cmp esi, eax
setg cl
and edx, 0xff
cmp ecx, edx
je 0x4532df
cmp esi, eax
jne 0x4532b9
mov cl, byte [esp + 0x28]
test cl, cl
je 0x4532df
xor eax, eax
xor edi, edi
jmp 0x4532df
mov ecx, esi
mov esi, eax
mov eax, ecx
mov cl, byte [esp + 0x28]
test cl, cl
je 0x4532d1
xor ebp, 0x55555555
mov edi, ebp
jmp 0x4532df
mov edi, ebp
sar edi, 1
not edi
and edi, 0x55555555
xor edi, ebp
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x10]
add ecx, 2
mov dword [esp + 0x10], ecx
mov word [ecx], ax
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
mov dword [eax], edi
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x452b57
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov esi, dword [0x5c671c]
cmp esi, 1
je 0x453344
cmp esi, 2
je 0x453344
lea eax, [eax + edx*4]
jmp 0x453346
add eax, edx
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x64]
add ecx, 4
mov dword [esp + 0x4c], eax
cmp ecx, ebp
mov dword [esp + 0x30], ecx
jl 0x452b3f
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x20]
push edi
mov eax, dword [ebp + 8]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov ecx, dword [esp + 0x140]
test ecx, ecx
jle 0x4533c8
mov eax, dword [esp + 0x13c]
mov esi, ecx
add eax, 0x18
mov cl, byte [eax - 0x18]
test cl, cl
je 0x4533c2
mov ecx, dword [eax - 4]
sar ecx, 1
mov dword [eax - 4], ecx
mov edx, ecx
mov ecx, dword [eax]
sar ecx, 1
test edx, edx
mov dword [eax], ecx
jle 0x4533be
test ecx, ecx
jle 0x4533be
mov edx, dword [eax - 0xc]
mov ecx, dword [eax - 8]
sar edx, 1
sar ecx, 1
mov dword [eax - 0xc], edx
mov dword [eax - 8], ecx
jmp 0x4533c2
mov byte [eax - 0x18], 0
add eax, 0x1c
dec esi
jne 0x45338d
mov ecx, dword [ebp + 4]
inc edi
and ecx, 0xff
mov dword [esp + 0x20], edi
cmp edi, ecx
jle 0x452acc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret