Function at 0x409b80
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf0
mov ecx, dword [esp + 0xf4]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x104]
xor ebp, ebp
push edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov edx, esi
mov eax, dword [ecx]
add ecx, 4
mov ebx, dword [esp + eax*4 + 0x44]
lea eax, [esp + eax*4 + 0x44]
inc ebx
dec edx
mov dword [eax], ebx
jne 0x409bdf
cmp dword [esp + 0x44], esi
jne 0x409c17
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
xor eax, eax
mov dword [ecx], ebp
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
mov ebx, dword [esp + 0x11c]
mov ecx, 1
lea eax, [esp + 0x48]
mov edi, dword [ebx]
mov dword [esp + 0x10], edi
cmp dword [eax], ebp
jne 0x409c3a
inc ecx
add eax, 4
cmp ecx, 0xf
jbe 0x409c2d
mov eax, ecx
cmp edi, ecx
mov dword [esp + 0x14], eax
jae 0x409c4a
mov dword [esp + 0x10], ecx
mov edi, ecx
mov edx, 0xf
lea esi, [esp + 0x80]
cmp dword [esi], ebp
jne 0x409c62
dec edx
sub esi, 4
cmp edx, ebp
jne 0x409c56
cmp edi, edx
mov dword [esp + 0x2c], edx
jbe 0x409c70
mov dword [esp + 0x10], edx
mov edi, edx
mov esi, 1
mov dword [ebx], edi
shl esi, cl
cmp ecx, edx
jae 0x409c8f
lea ebx, [esp + ecx*4 + 0x44]
sub esi, dword [ebx]
js 0x409caa
inc ecx
add ebx, 4
shl esi, 1
cmp ecx, edx
jb 0x409c81
lea ecx, [edx*4]
mov dword [esp + 0x20], ecx
lea ebx, [esp + ecx + 0x44]
mov ecx, dword [esp + ecx + 0x44]
sub esi, ecx
mov dword [esp + 0x40], esi
jns 0x409cba
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
add ecx, esi
mov dword [esp + 0x88], ebp
mov dword [ebx], ecx
xor ecx, ecx
dec edx
je 0x409cdd
xor ebx, ebx
add ecx, dword [esp + ebx + 0x48]
add ebx, 4
dec edx
mov dword [esp + ebx + 0x88], ecx
jne 0x409ccc
mov edx, dword [esp + 0x104]
xor ebx, ebx
mov ecx, dword [edx]
add edx, 4
cmp ecx, ebp
mov dword [esp + 0x1c], edx
je 0x409d15
mov edx, dword [esp + ecx*4 + 0x84]
mov ebp, dword [esp + 0x128]
lea ecx, [esp + ecx*4 + 0x84]
mov dword [ebp + edx*4], ebx
inc edx
mov dword [ecx], edx
mov edx, dword [esp + 0x1c]
xor ebp, ebp
mov ecx, dword [esp + 0x108]
inc ebx
cmp ebx, ecx
jb 0x409ce6
mov ecx, dword [esp + 0x20]
mov ebx, edi
neg ebx
mov edx, dword [esp + ecx + 0x84]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
mov dword [esp + 0x108], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x3c], ebp
jg 0x409fee
mov esi, dword [esp + 0x34]
lea edx, [esp + eax*4 + 0x44]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x20], ecx
je 0x409fcc
lea ecx, [ebx + edi]
cmp eax, ecx
jle 0x409ea0
mov dword [esp + 0x38], ecx
jmp 0x409da6
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
add ebx, edi
sub edx, ebx
inc ebp
add ecx, edi
cmp edx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ecx
jbe 0x409dc7
mov edx, edi
mov ebp, dword [esp + 0x20]
mov ecx, eax
sub ecx, ebx
mov eax, 1
shl eax, cl
lea edi, [ebp + 1]
cmp eax, edi
jbe 0x409e04
or edi, 0xffffffff
sub edi, ebp
mov ebp, dword [esp + 0x28]
add eax, edi
cmp ecx, edx
jae 0x409e04
inc ecx
cmp ecx, edx
jae 0x409e04
mov edi, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, edi
jbe 0x409e04
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x409df1
mov eax, dword [esp + 0x124]
mov edx, 1
shl edx, cl
mov eax, dword [eax]
mov dword [esp + 0x3c], edx
lea edi, [eax + edx]
cmp edi, 0x5a0
ja 0x40a016
mov edx, dword [esp + 0x120]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x18]
lea edx, [esp + eax*4 + 0xc4]
mov eax, dword [esp + 0x124]
mov dword [eax], edi
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [edx], ebp
je 0x409e87
mov esi, dword [esp + 0x24]
mov byte [esp + 0x30], cl
mov dword [esp + eax*4 + 0x84], esi
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov byte [esp + 0x31], al
sub ecx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x30]
mov esi, ebp
sub esi, ecx
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x409e90
mov eax, dword [esp + 0x118]
mov dword [eax], ebp
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jg 0x409d9e
mov ecx, dword [esp + 0x128]
mov dl, al
mov edi, dword [esp + 0x1c]
sub dl, bl
mov byte [esp + 0x31], dl
mov edx, dword [esp + 0x108]
lea ecx, [ecx + edx*4]
cmp edi, ecx
jb 0x409ec8
mov byte [esp + 0x30], 0xc0
jmp 0x409f10
mov esi, dword [edi]
mov ecx, dword [esp + 0x10c]
cmp esi, ecx
jae 0x409ee9
cmp esi, 0x100
sbb edx, edx
and edx, 0xffffffa0
add edx, 0x60
mov byte [esp + 0x30], dl
jmp 0x409f09
sub esi, ecx
mov ecx, dword [esp + 0x114]
shl esi, 2
mov dl, byte [esi + ecx]
mov ecx, dword [esp + 0x110]
add dl, 0x50
mov esi, dword [esi + ecx]
mov byte [esp + 0x30], dl
add edi, 4
mov dword [esp + 0x1c], edi
mov ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, dword [esp + 0x3c]
jae 0x409f47
lea ecx, [ebp + eax*8]
mov edi, dword [esp + 0x30]
add eax, edx
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add ecx, edi
cmp eax, dword [esp + 0x3c]
jb 0x409f2d
mov edx, dword [esp + 0x14]
mov eax, 1
lea ecx, [edx - 1]
mov edx, dword [esp + 0x24]
shl eax, cl
test edx, eax
je 0x409f65
xor edx, eax
shr eax, 1
test edx, eax
jne 0x409f5d
mov edi, 1
mov ecx, ebx
xor edx, eax
mov eax, dword [esp + 0x18]
shl edi, cl
mov ecx, dword [esp + eax*4 + 0x84]
lea eax, [esp + eax*4 + 0x84]
mov dword [esp + 0x24], edx
dec edi
and edi, edx
cmp edi, ecx
je 0x409fb1
mov edi, dword [esp + 0x18]
sub eax, 4
dec edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
sub ebx, edi
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ecx, dword [eax]
dec edi
and edi, edx
cmp edi, ecx
jne 0x409f8d
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, eax
dec eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
test ecx, ecx
jne 0x409d8d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edx
jle 0x409d78
mov esi, dword [esp + 0x40]
xor ebp, ebp
cmp esi, ebp
je 0x40a009
cmp dword [esp + 0x2c], 1
je 0x40a009
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0xf0
ret