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

Disassembly:
sub esp, 0x518
mov eax, dword [0x5f52cc]
push ebx
mov ebx, dword [0x5ed27c]
push ebp
mov ebp, dword [0x5ed294]
push esi
mov esi, dword [0x5f52d0]
push edi
mov edi, dword [0x5ed28c]
mov dword [esp + 0x10], eax
cmp esi, 5
jae 0x40803b
cmp ebp, dword [0x5ed290]
jae 0x407fe1
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x40801c
cmp edi, 8
jb 0x408071
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx edx, al
mov ecx, esi
shl edx, cl
add esi, 8
or dword [esp + 0x10], edx
cmp esi, 5
jb 0x407fd0
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0x1f
add eax, 0x101
shr ecx, 5
sub esi, 5
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp esi, 5
jae 0x4080d3
lea esp, [esp]
cmp ebp, dword [0x5ed290]
jae 0x40807d
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x4080b4
test edi, edi
jne 0x407fef
xor al, al
jmp 0x40801c
cmp edi, 8
jb 0x408101
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx eax, al
mov ecx, esi
shl eax, cl
add esi, 8
or dword [esp + 0x10], eax
cmp esi, 5
jb 0x408060
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
mov eax, dword [esp + 0x10]
mov edx, eax
and edx, 0x1f
inc edx
shr eax, 5
sub esi, 5
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
cmp esi, 4
jae 0x408167
cmp ebp, dword [0x5ed290]
jae 0x408109
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x408148
test edi, edi
jne 0x408087
xor al, al
jmp 0x4080b4
cmp edi, 8
jb 0x4081a8
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
mov edx, dword [esp + 0x3c]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx eax, al
mov ecx, esi
shl eax, cl
add esi, 8
or dword [esp + 0x10], eax
cmp esi, 4
jb 0x4080f0
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xf
add eax, 4
shr ecx, 4
sub esi, 4
cmp dword [esp + 0x1c], 0x11e
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
ja 0x40869b
cmp edx, 0x1e
ja 0x40869b
xor edx, edx
mov dword [esp + 0x20], edx
test eax, eax
jbe 0x408261
jmp 0x4081ba
test edi, edi
jne 0x408117
xor al, al
jmp 0x408148
mov edi, dword [0x5ed28c]
cmp esi, 3
jae 0x408223
nop
cmp ebp, dword [0x5ed290]
jae 0x4081d1
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x408210
cmp edi, 8
jb 0x408301
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
mov edx, dword [esp + 0x2c]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx eax, al
mov ecx, esi
shl eax, cl
add esi, 8
or dword [esp + 0x10], eax
cmp esi, 3
jb 0x4081c0
mov eax, dword [esp + 0x10]
mov edi, dword [edx*4 + 0x416cd0]
mov ecx, eax
inc edx
and ecx, 7
shr eax, 3
sub esi, 3
mov dword [esp + edi*4 + 0x38], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x28]
jb 0x4081b4
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
cmp edx, 0x13
jae 0x408274
xor eax, eax
mov ecx, dword [edx*4 + 0x416cd0]
inc edx
mov dword [esp + ecx*4 + 0x38], eax
cmp edx, 0x13
jb 0x408263
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x24]
push eax
xor ebx, ebx
push ebx
push ebx
push 0x13
push 0x13
lea eax, [esp + 0x50]
mov dword [esp + 0x30], 7
call fcn.00404d60
mov ecx, dword [esp + 0x30]
add esp, 0x18
cmp ecx, ebx
je 0x40869b
cmp eax, ebx
jne 0x4086a0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
movzx ecx, word [ecx*2 + 0x416ca8]
lea eax, [edx + edi]
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ebx
cmp eax, ebx
jbe 0x4085c6
mov ebp, dword [0x5ed294]
mov ebx, dword [0x5ed27c]
cmp esi, dword [esp + 0x18]
jae 0x408367
jmp 0x4082f0
cmp ebp, dword [0x5ed290]
jae 0x408310
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x408353
test edi, edi
jne 0x4081df
xor al, al
jmp 0x408210
cmp dword [0x5ed28c], 8
jae 0x408327
mov edi, dword [0x5ed28c]
test edi, edi
jne 0x40832c
xor al, al
jmp 0x408353
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
movzx edx, al
mov ecx, esi
shl edx, cl
add esi, 8
or dword [esp + 0x10], edx
cmp esi, dword [esp + 0x18]
jb 0x4082f0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
and eax, edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
movzx ecx, byte [eax + 5]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 8]
shr edx, cl
sub esi, ecx
mov dword [esp + 0x10], edx
cmp eax, 0x10
jae 0x4083aa
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x38], eax
inc ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
jmp 0x4085a8
jne 0x40846f
cmp esi, 2
jae 0x40841f
mov edi, dword [0x5ed28c]
jmp 0x4083c0
cmp ebp, dword [0x5ed290]
jae 0x4083d1
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x40840c
cmp edi, 8
jb 0x408463
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx edx, al
mov ecx, esi
shl edx, cl
add esi, 8
or dword [esp + 0x10], edx
cmp esi, 2
jb 0x4083c0
mov eax, dword [esp + 0x10]
mov ecx, eax
shr eax, 2
and ecx, 3
add ecx, 3
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
lea edx, [eax + ecx]
sub esi, 2
cmp edx, dword [esp + 0x24]
ja 0x40868f
test ecx, ecx
je 0x4085a8
mov edi, eax
mov eax, dword [esp + 0x2c]
lea edi, [esp + edi*4 + 0x38]
rep stosd dword es:[edi], eax
mov dword [esp + 0x14], edx
jmp 0x4085a8
test edi, edi
jne 0x4083df
xor al, al
jmp 0x40840c
cmp eax, 0x11
jne 0x4084fd
cmp esi, 3
jae 0x4084de
mov edi, dword [0x5ed28c]
cmp ebp, dword [0x5ed290]
jae 0x408494
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x4084cb
cmp edi, 8
jb 0x4084f5
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx edx, al
mov ecx, esi
shl edx, cl
add esi, 8
or dword [esp + 0x10], edx
cmp esi, 3
jb 0x408483
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 7
add ecx, 3
shr eax, 3
sub esi, 3
jmp 0x408579
test edi, edi
jne 0x40849e
xor al, al
jmp 0x4084cb
cmp esi, 7
jae 0x408567
mov edi, dword [0x5ed28c]
cmp ebp, dword [0x5ed290]
jae 0x408519
mov al, byte [ebp + 0x5ed298]
inc ebp
jmp 0x408554
cmp edi, 8
jb 0x408680
mov edi, 8
sub dword [0x5ed28c], edi
push edi
push ebx
push 0x5ed298
mov ebp, 1
mov dword [0x5ed290], edi
call fcn.0040cb60
mov al, byte [0x5ed298]
add esp, 0xc
add ebx, edi
mov edi, dword [0x5ed28c]
movzx edx, al
mov ecx, esi
shl edx, cl
add esi, 8
or dword [esp + 0x10], edx
cmp esi, 7
jb 0x408508
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 0x7f
add ecx, 0xb
shr eax, 7
sub esi, 7
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
lea edx, [eax + ecx]
cmp edx, dword [esp + 0x24]
ja 0x40868f
test ecx, ecx
je 0x4085a0
mov edi, eax
lea edi, [esp + edi*4 + 0x38]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x14], ecx
jb 0x4082e5
mov edi, dword [esp + 0x1c]
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
push 0x416d5c
push 0x416d1c
push 0x101
push edi
lea eax, [esp + 0x50]
mov dword [0x5f52cc], edx
mov dword [0x5f52d0], esi
mov dword [esp + 0x30], 9
call fcn.00404d60
mov esi, dword [esp + 0x30]
add esp, 0x18
test esi, esi
je 0x40869b
test eax, eax
jne 0x4086a0
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x2c]
push eax
push 0x416dd8
push 0x416d9c
push 0
push ecx
lea eax, [esp + edi*4 + 0x50]
mov dword [esp + 0x34], 6
call fcn.00404d60
mov ecx, dword [esp + 0x34]
add esp, 0x18
test ecx, ecx
jne 0x408657
cmp edi, 0x101
ja 0x40869b
test eax, eax
jne 0x4086a0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ecx
push esi
push edx
push eax
call fcn.00407610
add esp, 0x10
pop edi
neg eax
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x518
ret
test edi, edi
jne 0x408527
xor al, al
jmp 0x408554
mov dword [0x5ed27c], ebx
mov dword [0x5ed294], ebp
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x518
ret
push ecx
mov edx, dword [0x5f52cc]
push ebx
mov ebx, dword [0x5ed294]
push ebp
mov ebp, dword [0x5ed27c]
push esi
push edi
mov edi, dword [0x5f52d0]
mov dword [esp + 0x10], edx
cmp edi, 1
jae 0x4089ad
cmp ebx, dword [0x5ed290]
jae 0x408947
mov al, byte [ebx + 0x5ed298]
inc ebx
jmp 0x40898c
mov eax, dword [0x5ed28c]
cmp eax, 8
jae 0x40895b
mov esi, eax
test esi, esi
jne 0x408960
xor al, al
jmp 0x40898c
mov esi, 8
push esi
sub eax, esi
push ebp
push 0x5ed298
mov dword [0x5ed28c], eax
mov ebx, 1
mov dword [0x5ed290], esi
call fcn.0040cb60
mov al, byte [0x5ed298]
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebp, esi
movzx eax, al
mov ecx, edi
shl eax, cl
add edi, 8
or edx, eax
mov dword [esp + 0x10], edx
cmp edi, 1
jb 0x408936
mov dword [0x5ed27c], ebp
mov dword [0x5ed294], ebx
mov eax, dword [esp + 0x18]
mov ecx, edx
and ecx, 1
shr edx, 1
dec edi
mov dword [eax], ecx
mov dword [esp + 0x10], edx
cmp edi, 2
jae 0x408a3b
cmp ebx, dword [0x5ed290]
jae 0x4089d5
mov al, byte [ebx + 0x5ed298]
inc ebx
jmp 0x408a1a
mov eax, dword [0x5ed28c]
cmp eax, 8
jae 0x4089e9
mov esi, eax
test esi, esi
jne 0x4089ee
xor al, al
jmp 0x408a1a
mov esi, 8
push esi
sub eax, esi
push ebp
push 0x5ed298
mov dword [0x5ed28c], eax
mov ebx, 1
mov dword [0x5ed290], esi
call fcn.0040cb60
mov al, byte [0x5ed298]
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebp, esi
movzx eax, al
mov ecx, edi
shl eax, cl
add edi, 8
or edx, eax
mov dword [esp + 0x10], edx
cmp edi, 2
jb 0x4089c4
mov dword [0x5ed27c], ebp
mov dword [0x5ed294], ebx
add edi, 0xfffffffe
mov dword [0x5f52d0], edi
pop edi
mov eax, edx
pop esi
and eax, 3
shr edx, 2
pop ebp
mov dword [0x5f52cc], edx
pop ebx
cmp eax, 2
jne 0x408a63
add esp, 4
jmp 0x407fa0
test eax, eax
jne 0x408a6f
add esp, 4
jmp fcn.00407ce0
cmp eax, 1
jne 0x408a7c
add esp, 4
jmp fcn.004086b0
mov eax, 2
pop ecx
ret