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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x34]
lea ebp, [esi + 0x34]
xor ebx, ebx
cmp eax, ebx
je 0x453d43
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x8c
ret
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x34]
mov al, byte [esi + 0x1a]
test al, al
je 0x453d5d
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x8c
ret
mov edx, dword [esi + 4]
push edi
xor eax, eax
mov ecx, 0x1b
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov cl, byte [esi + 0x39]
mov eax, dword [esi + 8]
neg cl
push ebx
mov dword [esp + 0x34], 0x6c
mov dword [esp + 0x38], 7
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
push ebp
sbb ecx, ecx
and ecx, 0x3800
add ecx, 0x800
mov dword [esp + 0xa0], ecx
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 8]
mov edx, dword [eax]
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [edx + 0x18]
test eax, eax
je 0x453dc7
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x8c
ret
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x78]
test al, al
je 0x453dba
mov eax, dword [esi + 0x94]
cmp eax, 0x10
jne 0x45415b
mov eax, dword [esi + 0x64]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x454436
cmp dword [esi + 0xc], ebx
mov byte [esp + 0x1b], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
je 0x453edd
mov eax, dword [esi + 4]
imul eax, dword [esi + 8]
shl eax, 1
push eax
call fcn.00490214
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
add esp, 4
test ecx, ecx
mov dword [esp + 0x1c], eax
mov ebp, eax
mov dword [esp + 0x20], 0
jle 0x453edd
mov ebx, dword [edi]
mov edx, ebx
shr edx, 0x10
movzx edx, dl
imul edx, dword [esi + 0xa0]
mov eax, 0x80808081
mul edx
shr edx, 7
mov ecx, edx
and cx, word [esi + 0xa0]
movzx edx, bh
imul edx, dword [esi + 0x9c]
mov eax, 0x80808081
mul edx
shr edx, 7
and dx, word [esi + 0x9c]
mov eax, 0x80808081
add edi, 4
mov dword [esp + 0x28], ebx
or ecx, edx
mov edx, ebx
and edx, 0xff
imul edx, dword [esi + 0x98]
mul edx
mov al, byte [esp + 0x1b]
shr edx, 7
and dx, word [esi + 0x98]
or ecx, edx
test al, al
mov word [ebp], cx
je 0x453ec2
shr ebx, 0x18
cmp ebx, 0xff
jge 0x453ec2
mov byte [esp + 0x1b], 0
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
mov eax, dword [esp + 0x20]
add ebp, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x453e38
mov al, byte [esi + 0x19]
test al, al
je 0x4540c2
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x4540c2
mov al, byte [esi + 0x3a]
xor ebp, ebp
test al, al
je 0x453f57
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 8]
test eax, eax
mov dx, word [edi]
mov ecx, dword [esp + 0x10]
mov word [esp + 0x14], dx
jle 0x454112
mov ebx, dword [esi + 4]
lea ebx, [ebx]
xor eax, eax
test ebx, ebx
jle 0x453f3a
mov dx, word [edi]
mov word [ecx], dx
mov edx, dword [esi + 4]
add ecx, 2
add edi, 2
inc eax
cmp eax, edx
jl 0x453f26
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 4]
cdq
sub eax, edx
sar eax, 1
sub eax, ebx
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 8]
inc ebp
cmp ebp, eax
jl 0x453f20
jmp 0x454112
mov edi, dword [esi + 4]
imul edi, dword [esi + 8]
test edi, edi
mov edx, dword [esp + 0x1c]
jle 0x454050
lea ebx, [ebx]
mov eax, dword [ecx]
mov bx, word [edx]
and eax, 0xff000000
add ecx, 4
add edx, 2
cmp eax, 0xff000000
jne 0x453f8e
cmp word [esp + 0x14], bx
je 0x453f98
inc ebp
cmp ebp, edi
jl 0x453f70
jmp 0x454050
push 0x2000
call fcn.00490214
mov ebx, eax
xor eax, eax
mov ecx, 0x800
mov edi, ebx
rep stosd dword es:[edi], eax
mov edx, dword [esi + 0xc]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 4]
imul eax, dword [esi + 8]
add esp, 4
test eax, eax
jle 0x45400f
mov eax, dword [edx]
mov cx, word [edi]
shr eax, 0x18
add edx, 4
add edi, 2
test eax, eax
jle 0x453ffb
movzx ecx, cx
mov eax, ecx
shr eax, 5
and ecx, 0x8000001f
lea eax, [ebx + eax*4]
jns 0x453ff2
dec ecx
or ecx, 0xffffffe0
inc ecx
mov ebp, 1
shl ebp, cl
or dword [eax], ebp
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
mov eax, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x453fc8
xor edx, edx
mov eax, dword [ebx + edx*4]
cmp eax, 0xffff
je 0x45403e
xor ecx, ecx
lea ecx, [ecx]
mov edi, 1
shl edi, cl
test eax, edi
je 0x454033
inc ecx
cmp ecx, 0x20
jl 0x454020
jmp 0x45403e
mov eax, edx
shl eax, 5
add eax, ecx
mov dword [esp + 0x14], eax
inc edx
cmp edx, 0x800
jl 0x454011
push ebx
call fcn.0049f22c
add esp, 4
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x454112
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
xor ebp, ebp
test eax, eax
jle 0x454112
mov eax, dword [esi + 4]
xor edx, edx
test eax, eax
jle 0x4540a8
lea esp, [esp]
mov eax, dword [ebx]
shr eax, 0x18
add ebx, 4
cmp eax, 0xff
mov ax, word [esp + 0x14]
jl 0x454097
mov ax, word [edi]
mov word [ecx], ax
mov eax, dword [esi + 4]
add ecx, 2
add edi, 2
inc edx
cmp edx, eax
jl 0x454080
mov eax, dword [esi + 0x50]
cdq
sub eax, edx
mov edx, dword [esi + 4]
sar eax, 1
sub eax, edx
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 8]
inc ebp
cmp ebp, eax
jl 0x454070
jmp 0x454112
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x454112
mov ecx, dword [esp + 0x10]
mov edi, eax
mov eax, dword [esi + 8]
xor ebp, ebp
test eax, eax
jle 0x454112
mov ebx, dword [esi + 4]
lea esp, [esp]
xor eax, eax
test ebx, ebx
jle 0x4540fa
mov dx, word [edi]
mov word [ecx], dx
mov edx, dword [esi + 4]
add ecx, 2
add edi, 2
inc eax
cmp eax, edx
jl 0x4540e6
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 4]
cdq
sub eax, edx
sar eax, 1
sub eax, ebx
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 8]
inc ebp
cmp ebp, eax
jl 0x4540e0
mov eax, dword [esp + 0x1c]
push eax
call fcn.0049f22c
mov al, byte [esi + 0x19]
add esp, 4
test al, al
je 0x454436
movzx eax, word [esp + 0x14]
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
push 8
push eax
call dword [ecx + 0x74]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x7c]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x8c
ret
cmp eax, 0x18
je 0x454169
cmp eax, 0x20
jne 0x453dba
mov edi, dword [esi + 0x64]
cmp edi, ebx
mov dword [esp + 0x28], edi
je 0x454436
mov al, byte [esi + 0x19]
test al, al
mov dl, 1
mov dword [esp + 0x14], ebx
je 0x4543d4
mov ebp, dword [esi + 0xc]
cmp ebp, ebx
je 0x4543d4
mov al, byte [esi + 0x3a]
test al, al
je 0x45421b
mov eax, dword [ebp]
mov ecx, dword [esi + 0x30]
push eax
call fcn.004524b0
mov ebp, dword [esi + 0xc]
cmp ebp, ebx
mov dword [esp + 0x14], eax
je 0x4543a4
mov eax, dword [esi + 8]
test eax, eax
mov dword [esp + 0x10], 0
jle 0x4543a4
mov ecx, dword [esi + 4]
xor ebx, ebx
test ecx, ecx
jle 0x4541f2
mov eax, dword [ebp]
mov ecx, dword [esi + 0x30]
push eax
add ebp, 4
call fcn.004524b0
mov dword [edi], eax
mov eax, dword [esi + 4]
add edi, 4
inc ebx
cmp ebx, eax
jl 0x4541d6
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 4]
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 8]
sar eax, 2
sub eax, ecx
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x4541d0
jmp 0x4543a4
mov edi, dword [esi + 4]
imul edi, dword [esi + 8]
cmp edi, ebx
mov ecx, ebp
jle 0x454252
mov dword [esp + 0x10], edi
lea esp, [esp]
mov eax, dword [ecx]
add ecx, 4
test dl, dl
je 0x45424c
mov ebx, eax
shr ebx, 0x18
cmp ebx, 0xff
jge 0x45424c
xor dl, dl
mov dword [esp + 0x14], eax
dec dword [esp + 0x10]
jne 0x454230
xor edx, edx
test edi, edi
mov ecx, ebp
jle 0x45432e
mov ebx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ebp, eax
and ebp, 0xff000000
add ecx, 4
cmp ebp, 0xff000000
jne 0x454280
and eax, 0xffffff
cmp ebx, eax
je 0x45428a
inc edx
cmp edx, edi
jl 0x454262
jmp 0x45432e
push 0x200000
call fcn.00490214
mov ebp, eax
xor eax, eax
mov ecx, 0x80000
mov edi, ebp
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
add esp, 4
xor edi, edi
test ecx, ecx
jle 0x4542ee
mov ecx, dword [edx]
mov eax, ecx
shr eax, 0x18
add edx, 4
test eax, eax
jle 0x4542e2
mov eax, ecx
shr eax, 5
and ecx, 0x1f
and eax, 0x7ffff
mov ebx, 1
shl ebx, cl
mov ecx, dword [ebp + eax*4]
lea eax, [ebp + eax*4]
or ecx, ebx
mov dword [eax], ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 8]
inc edi
cmp edi, ecx
jl 0x4542b4
xor edx, edx
mov eax, dword [ebp + edx*4]
cmp eax, 0xffff
je 0x454311
xor ecx, ecx
lea ecx, [ecx]
mov edi, 1
shl edi, cl
test eax, edi
je 0x45431c
inc ecx
cmp ecx, 0x20
jl 0x454300
inc edx
cmp edx, 0x80000
jl 0x4542f0
jmp 0x454325
shl edx, 5
add edx, ecx
mov dword [esp + 0x14], edx
push ebp
call fcn.0049f22c
add esp, 4
mov ebp, dword [esi + 0xc]
test ebp, ebp
je 0x4543a4
mov eax, dword [esi + 8]
test eax, eax
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], 0
jle 0x4543a4
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x454380
mov eax, dword [ebp]
mov edx, eax
shr edx, 0x18
add ebp, 4
cmp edx, 0xff
jge 0x45436a
mov eax, dword [esp + 0x14]
jmp 0x454373
mov ecx, dword [esi + 0x30]
push eax
call fcn.004524b0
mov dword [edi], eax
mov eax, dword [esi + 4]
add edi, 4
inc ebx
cmp ebx, eax
jl 0x454351
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, ebx
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x454348
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
push 8
push eax
call dword [ecx + 0x74]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x7c]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x8c
ret
mov ebp, dword [esi + 0xc]
cmp ebp, ebx
je 0x454436
mov eax, dword [esi + 8]
test eax, eax
mov dword [esp + 0x10], 0
jle 0x454436
mov ecx, dword [esi + 4]
lea ecx, [ecx]
xor ebx, ebx
test ecx, ecx
jle 0x454412
mov eax, dword [ebp]
mov ecx, dword [esi + 0x30]
push eax
add ebp, 4
call fcn.004524b0
mov dword [edi], eax
mov eax, dword [esi + 4]
add edi, 4
inc ebx
cmp ebx, eax
jl 0x4543f6
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 4]
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 8]
sar eax, 2
sub eax, ecx
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x4543f0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x7c]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x8c
ret