Function at 0x407800
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov esi, esp
mov dword [esi + 0xc], 0
lea ecx, [eax + 1]
mov dword [esi], ecx
mov al, byte [eax]
lea ecx, [edx + 1]
mov dword [esi + 4], ecx
mov byte [edx], al
mov eax, 0x6c54fcdf
xor ebp, ebp
xor ecx, ecx
dec ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
cmp eax, 0xffa29f56
jle 0x407884
cmp eax, 0x5881bd25
jg 0x4078d1
cmp eax, 0x40903904
jg 0x407964
cmp eax, 0x28874fd2
jg 0x407a5c
cmp eax, 0xffa29f57
je 0x407c30
cmp eax, 0x11fc516b
je 0x407c4b
cmp eax, 0x2481d047
je 0x4078c7
jmp 0x40783d
cmp eax, 0xce39935d
jle 0x407923
cmp eax, 0xdf8f5a0d
jg 0x4079ab
cmp eax, 0xd297a652
jg 0x407a94
cmp eax, 0xce39935e
je 0x407c66
cmp eax, 0xd1042bec
je 0x407c71
cmp eax, 0xd2227670
jne 0x40783d
dec edi
mov eax, 0xd1042bec
jmp 0x40783d
cmp eax, 0x6c54fcde
jle 0x4079e8
cmp eax, 0x71b92252
jg 0x407abf
cmp eax, 0x6c54fcdf
je 0x407c85
cmp eax, 0x6dd64cfe
je 0x407c9c
cmp eax, 0x70ec58c9
jne 0x40783d
mov eax, dword [esp + 4]
mov ecx, eax
sub ecx, ebx
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 4], eax
mov eax, 0x6670d916
jmp 0x40783d
cmp eax, 0xb43ebd90
jle 0x407a1f
cmp eax, 0xc0b684a0
jg 0x407af4
cmp eax, 0xb43ebd91
je 0x407cc0
cmp eax, 0xb6ee75c8
je 0x407cd4
cmp eax, 0xb820776e
jne 0x40783d
mov eax, 0xdca19ed5
jmp 0x40783d
cmp eax, 0x4c3e2dbc
jg 0x407b30
cmp eax, 0x40903905
je 0x407d13
cmp eax, 0x43104272
je 0x407cdf
cmp eax, 0x468cae23
jne 0x40783d
mov eax, dword [esp + 4]
mov ecx, eax
sub ecx, ebx
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 4], eax
mov eax, 0xa30a655a
jmp 0x40783d
cmp eax, 0xeb2a6b27
jg 0x407b7e
cmp eax, 0xdf8f5a0e
je 0x407cea
cmp eax, 0xe2c94d8e
je 0x407d05
cmp eax, 0xe620b2c4
jne 0x40783d
mov eax, 0x86be1f72
mov dword [esp + 0x10], ebx
xor ebp, ebp
inc ebp
jmp 0x40783d
cmp eax, 0x5e513795
jle 0x407bd1
cmp eax, 0x5e513796
je 0x407d12
cmp eax, 0x64f9b40c
je 0x407d1d
cmp eax, 0x6670d916
jne 0x40783d
dec edi
mov eax, 0x73d0cfbd
jmp 0x40783d
cmp eax, 0xa30a6559
jle 0x407bff
cmp eax, 0xa30a655a
je 0x407d35
cmp eax, 0xa8d8eb3c
je 0x407d41
cmp eax, 0xabfacf72
jne 0x40783d
mov eax, 0xe620b2c4
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x40783d
cmp eax, 0x28874fd3
je 0x407d52
cmp eax, 0x289258df
je 0x407d66
cmp eax, 0x2cf6603d
jne 0x40783d
mov ecx, esp
call fcn.00407ec9
mov edi, eax
mov eax, 0x73d0cfbd
mov ebx, dword [esp + 0x10]
jmp 0x40783d
cmp eax, 0xd297a653
je 0x407d7a
cmp eax, 0xdca19ed5
je 0x407d88
cmp eax, 0xddfc3dc6
jne 0x40783d
mov eax, 0x6c54fcdf
jmp 0x40783d
cmp eax, 0x71b92253
je 0x407d95
cmp eax, 0x73d0cfbd
je 0x407dad
cmp eax, 0x7d7310f5
jne 0x40783d
test ebx, ebx
mov eax, 0x468cae23
mov ecx, 0x71b92253
cmove eax, ecx
jmp 0x40783d
cmp eax, 0xc0b684a1
je 0x407dc1
cmp eax, 0xc6f604e7
je 0x407dcb
cmp eax, 0xc9172945
jne 0x40783d
mov ecx, esp
call fcn.00407e5a
test eax, eax
mov eax, 0xffa29f57
mov ecx, 0x6dd64cfe
cmove eax, ecx
jmp 0x40783d
cmp eax, 0x4c3e2dbd
je 0x407de0
cmp eax, 0x561347ca
je 0x407dea
cmp eax, 0x584da57f
jne 0x40783d
mov eax, dword [esp]
lea ecx, [eax + 1]
mov dword [esp], ecx
movzx eax, byte [eax]
mov edi, eax
and edi, 1
or edi, 2
mov ebx, eax
shr ebx, 1
cmp eax, 2
mov eax, 0x40903905
mov ecx, 0xabfacf72
cmovb eax, ecx
jmp 0x40783d
cmp eax, 0xeb2a6b28
je 0x407df7
cmp eax, 0xf181a250
je 0x407e0b
cmp eax, 0xfb5b0461
jne 0x40783d
shl ebx, 8
mov eax, dword [esp]
lea ecx, [eax + 1]
mov dword [esp], ecx
movzx eax, byte [eax]
or ebx, eax
mov ecx, esp
call fcn.00407ec9
mov edi, eax
cmp ebx, 0x7d00
mov eax, 0x64f9b40c
mov ecx, 0x43104272
cmovae eax, ecx
jmp 0x40783d
cmp eax, 0x5881bd26
je 0x407e28
cmp eax, 0x5c5e6756
jne 0x407e3f
cmp ebx, 0x80
mov eax, 0x2481d047
mov ecx, 0x5881bd26
cmovb eax, ecx
jmp 0x40783d
cmp eax, 0x86be1f72
je 0x407e35
cmp eax, 0x98d62acc
jne 0x40783d
mov eax, dword [esp + 4]
mov ecx, eax
sub ecx, ebx
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 4], eax
mov eax, 0xd2227670
jmp 0x40783d
mov ecx, esp
call fcn.00407e5a
test eax, eax
mov eax, 0x11fc516b
mov ecx, 0xf181a250
cmove eax, ecx
jmp 0x40783d
mov ecx, esp
call fcn.00407e5a
test eax, eax
mov eax, 0xa8d8eb3c
mov ecx, 0x584da57f
cmove eax, ecx
jmp 0x40783d
inc edi
mov eax, 0x5c5e6756
jmp 0x40783d
test edi, edi
mov eax, 0x98d62acc
mov ecx, 0xd297a653
cmove eax, ecx
jmp 0x40783d
cmp dword [esp + 0x14], 0
mov eax, 0x59266c48
mov ecx, 0xc9172945
cmove eax, ecx
jmp 0x40783d
mov eax, dword [esp]
mov ecx, dword [esp + 4]
lea edx, [eax + 1]
mov dword [esp], edx
mov al, byte [eax]
lea edx, [ecx + 1]
mov dword [esp + 4], edx
mov byte [ecx], al
mov eax, 0xddfc3dc6
xor ebp, ebp
jmp 0x40783d
test edi, edi
mov eax, 0xdf8f5a0e
mov ecx, 0xc0b684a1
cmove eax, ecx
jmp 0x40783d
dec esi
mov eax, 0x28874fd3
jmp 0x40783d
inc edi
mov eax, 0x64f9b40c
jmp 0x40783d
mov eax, dword [esp + 4]
mov ecx, eax
sub ecx, ebx
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 4], eax
mov eax, 0x5e513796
jmp 0x40783d
add ebx, 0xfffffffe
mov eax, 0xfb5b0461
jmp 0x40783d
dec edi
mov eax, 0xb43ebd91
jmp 0x40783d
cmp ebx, 0x500
mov eax, 0x5c5e6756
mov ecx, 0xce39935e
cmovae eax, ecx
jmp 0x40783d
mov eax, 0x86be1f72
xor ebp, ebp
jmp 0x40783d
mov eax, 0x28874fd3
mov esi, 4
xor ebx, ebx
jmp 0x40783d
test esi, esi
mov eax, 0xeb2a6b28
mov ecx, 0x7d7310f5
cmove eax, ecx
jmp 0x40783d
test ebp, ebp
mov eax, 0xe2c94d8e
mov ecx, 0x561347ca
cmove eax, ecx
jmp 0x40783d
mov eax, 0xdca19ed5
mov dword [esp + 0x10], ebx
jmp 0x40783d
mov eax, 0x4c3e2dbd
xor ebp, ebp
inc ebp
jmp 0x40783d
mov eax, dword [esp + 4]
lea ecx, [eax + 1]
mov dword [esp + 4], ecx
mov byte [eax], 0
mov eax, 0xa30a655a
jmp 0x40783d
test edi, edi
mov eax, 0x70ec58c9
mov ecx, 0xb820776e
cmove eax, ecx
jmp 0x40783d
mov eax, 0xe620b2c4
jmp 0x40783d
cmp ebx, 2
mov eax, 0x289258df
mov ecx, 0x2cf6603d
cmove eax, ecx
jmp 0x40783d
mov eax, 0xddfc3dc6
jmp 0x40783d
add ebx, 0xfffffffd
mov eax, 0xfb5b0461
jmp 0x40783d
mov ecx, esp
call fcn.00407e5a
lea ebx, [eax + ebx*2]
mov eax, 0xb6ee75c8
jmp 0x40783d
mov ecx, esp
call fcn.00407ec9
mov ebx, eax
test ebp, ebp
mov eax, 0x289258df
mov ecx, 0xc6f604e7
cmove eax, ecx
jmp 0x40783d
add edi, 2
mov eax, 0x2481d047
jmp 0x40783d
mov eax, 0x4c3e2dbd
jmp 0x40783d
cmp eax, 0x59266c48
jne 0x40783d
mov eax, dword [esp + 4]
sub eax, dword [esp + 0x30]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret