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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], 0
movsx eax, byte [esi + 0xa4]
mov edi, dword [esi + 0x10]
mov ecx, eax
imul edi, dword [esi + 0xc]
and ecx, 4
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], 8
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x2c], 0x20
mov dword [esp + 0x30], 0x40
mov dword [esp + 0x34], 0x80
jne 0x454e8b
test al, 2
je 0x454e8b
mov ecx, dword [esi + 0x5c]
test ecx, ecx
jne 0x454d1b
mov eax, dword [esi + 0x60]
test eax, eax
jg 0x454d1b
push edi
call fcn.0046a88c
add esp, 4
jmp 0x454d35
mov eax, dword [esi + 0x60]
xor edx, edx
test eax, eax
setl dl
dec edx
push edi
and eax, edx
push ecx
mov dword [esi + 0x60], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x5c], eax
mov dword [esi + 0x60], edi
mov ecx, dword [esi + 0x50]
test ecx, ecx
jne 0x454d54
mov eax, dword [esi + 0x54]
test eax, eax
jg 0x454d54
push edi
call fcn.0046a88c
add esp, 4
jmp 0x454d6e
mov eax, dword [esi + 0x54]
xor edx, edx
test eax, eax
setl dl
dec edx
push edi
and eax, edx
push ecx
mov dword [esi + 0x54], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov ebp, dword [esi + 0x74]
lea ebx, [edi + edi*2]
test ebp, ebp
jne 0x454d90
mov eax, dword [esi + 0x78]
test eax, eax
jg 0x454d90
push ebx
call fcn.0046a88c
add esp, 4
jmp 0x454daa
mov eax, dword [esi + 0x78]
xor ecx, ecx
test eax, eax
setl cl
dec ecx
push ebx
and eax, ecx
push ebp
mov dword [esi + 0x78], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], ebx
mov ebx, dword [esi + 0x5c]
mov eax, dword [esi + 0x50]
mov esi, dword [esi + 0x74]
test edi, edi
jle 0x454e7c
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov edx, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], esi
sub ebp, esi
mov esi, dword [esp + 0x10]
mov ecx, eax
sub ebx, eax
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x44]
mov al, byte [eax + ebp]
and al, byte [esp + esi*4 + 0x18]
mov byte [ebx + ecx], al
jne 0x454e07
mov eax, dword [esp + 0x44]
mov al, byte [eax]
and al, byte [esp + esi*4 + 0x18]
neg al
sbb eax, eax
neg eax
jmp 0x454e09
xor eax, eax
test al, al
mov byte [ecx], al
jne 0x454e17
mov edi, dword [esp + 0x3c]
xor eax, eax
jmp 0x454e24
mov edi, dword [esp + 0x3c]
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x3c], edi
mov byte [edx], al
mov al, byte [ecx]
inc edx
test al, al
jne 0x454e31
xor eax, eax
jmp 0x454e3a
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x3c], edi
mov byte [edx], al
mov al, byte [ecx]
inc edx
test al, al
jne 0x454e47
xor eax, eax
jmp 0x454e50
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x3c], edi
mov byte [edx], al
mov eax, dword [esp + esi*4 + 0x18]
inc edx
cmp eax, 0x80
jne 0x454e62
inc dword [esp + 0x44]
cmp esi, 7
jne 0x454e6b
xor esi, esi
jmp 0x454e6c
inc esi
mov eax, dword [esp + 0x40]
inc ecx
dec eax
mov dword [esp + 0x40], eax
jne 0x454de5
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret 0x14
test ecx, ecx
je 0x4550c8
test al, 2
je 0x4550c8
mov ecx, dword [esi + 0x5c]
test ecx, ecx
jne 0x454eb4
mov eax, dword [esi + 0x60]
test eax, eax
jg 0x454eb4
push edi
call fcn.0046a88c
add esp, 4
jmp 0x454ece
mov eax, dword [esi + 0x60]
xor edx, edx
test eax, eax
setl dl
dec edx
push edi
and eax, edx
push ecx
mov dword [esi + 0x60], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x5c], eax
mov dword [esi + 0x60], edi
mov ecx, dword [esi + 0x50]
test ecx, ecx
jne 0x454eed
mov eax, dword [esi + 0x54]
test eax, eax
jg 0x454eed
push edi
call fcn.0046a88c
add esp, 4
jmp 0x454f07
mov eax, dword [esi + 0x54]
xor edx, edx
test eax, eax
setl dl
dec edx
push edi
and eax, edx
push ecx
mov dword [esi + 0x54], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov ebp, dword [esi + 0x68]
lea ebx, [edi + edi*2]
test ebp, ebp
jne 0x454f29
mov eax, dword [esi + 0x6c]
test eax, eax
jg 0x454f29
push ebx
call fcn.0046a88c
add esp, 4
jmp 0x454f43
mov eax, dword [esi + 0x6c]
xor ecx, ecx
test eax, eax
setl cl
dec ecx
push ebx
and eax, ecx
push ebp
mov dword [esi + 0x6c], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], ebx
mov ebp, dword [esi + 0x74]
test ebp, ebp
jne 0x454f62
mov eax, dword [esi + 0x78]
test eax, eax
jg 0x454f62
push ebx
call fcn.0046a88c
add esp, 4
jmp 0x454f7c
mov eax, dword [esi + 0x78]
xor edx, edx
test eax, eax
setl dl
dec edx
push ebx
and eax, edx
push ebp
mov dword [esi + 0x78], eax
call fcn.0046a754
add esp, 8
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], ebx
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x68]
mov esi, dword [esi + 0x74]
test edi, edi
jle 0x4550b9
mov ebp, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
sub ebp, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebp
mov ebp, edx
mov edx, dword [esp + 0x14]
sub ebp, ecx
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov al, byte [edi + eax]
mov edi, dword [esp + 0x10]
and al, byte [esp + edi*4 + 0x18]
mov byte [ecx], al
jne 0x454fef
mov eax, dword [esp + 0x3c]
mov al, byte [eax]
and al, byte [esp + edi*4 + 0x18]
neg al
sbb eax, eax
neg eax
jmp 0x454ff1
xor eax, eax
test al, al
mov byte [ecx + ebp], al
jne 0x455001
cmp byte [ecx], 0
jne 0x455001
xor eax, eax
jmp 0x455006
xor eax, eax
mov al, byte [edx]
inc edx
mov byte [esi], al
mov al, byte [ecx + ebp]
inc esi
test al, al
jne 0x455019
cmp byte [ecx], 0
jne 0x455019
xor eax, eax
jmp 0x45501e
xor eax, eax
mov al, byte [edx]
inc edx
mov byte [esi], al
mov al, byte [ecx + ebp]
inc esi
test al, al
jne 0x455031
cmp byte [ecx], 0
jne 0x455031
xor eax, eax
jmp 0x455036
xor eax, eax
mov al, byte [edx]
inc edx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
je 0x45504e
mov edi, dword [esp + 0x48]
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x48], edi
jmp 0x455054
mov edi, dword [esp + 0x48]
xor eax, eax
mov byte [ebx], al
mov al, byte [ecx]
inc ebx
test al, al
je 0x455068
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x48], edi
jmp 0x45506a
xor eax, eax
mov byte [ebx], al
mov al, byte [ecx]
inc ebx
test al, al
je 0x45507e
xor eax, eax
mov al, byte [edi]
inc edi
mov dword [esp + 0x48], edi
jmp 0x455080
xor eax, eax
mov byte [ebx], al
mov eax, dword [esp + 0x10]
inc ebx
cmp dword [esp + eax*4 + 0x18], 0x80
jne 0x455095
inc dword [esp + 0x3c]
cmp eax, 7
jne 0x4550a4
mov dword [esp + 0x10], 0
jmp 0x4550a9
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
inc ecx
dec eax
mov dword [esp + 0x44], eax
jne 0x454fc6
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret 0x14
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0x14