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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x128
mov esi, esp
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esi + 0x11c], eax
mov eax, 2
mov dword [esi + 0x118], eax
mov eax, dword [0x2f35fc]
mov dword [esi + 0x114], eax
mov eax, dword [0x2f35f8]
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x114]
imul eax, eax
add eax, 1
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x118]
mov dword [esi + 0x108], ecx
xor ecx, ecx
mov dword [esi + 0x104], edx
mov edx, ecx
mov ecx, dword [esi + 0x10c]
div ecx
add eax, 2
mov edx, dword [esi + 0x110]
imul edx, edx
add edx, 5
cmp eax, edx
mov dword [esi + 0x100], ebx
mov dword [esi + 0xfc], edi
je 0x100061a2
mov eax, 4
mov dword [esi + 0xf8], eax
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xf4], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xf0], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xec], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xe8], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xe4], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0xe0], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
imul ecx, ecx, 7
sub ecx, 1
imul edx, edx
cmp ecx, edx
mov dword [esi + 0xdc], eax
je 0x100061a2
jmp 0x10005b45
mov eax, dword [0x2f35fc]
mov ecx, dword [0x2f35f8]
imul eax, eax
imul eax, eax, 7
sub eax, 1
imul ecx, ecx
cmp eax, ecx
je 0x100061c9
mov eax, 2
mov ecx, 4
mov dword [esi + 0xd8], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, 0x208
mov dword [esi + 0xd4], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xf4]
mov edx, dword [esi + 0x11c]
mov dword [ecx], edx
mov edi, dword [esi + 0xf0]
mov ebx, dword [esi + 0x108]
mov dword [edi], ebx
mov ecx, dword [esi + 0xec]
mov edx, dword [esi + 0x104]
mov dword [ecx], edx
mov ecx, dword [esi + 0xe8]
mov edx, dword [esi + 0xfc]
mov dword [ecx], edx
mov ecx, dword [esi + 0xe4]
mov edx, dword [esi + 0x100]
mov dword [ecx], edx
mov ecx, dword [esi + 0xe0]
mov dword [ecx], 0
mov ecx, dword [esi + 0xdc]
mov dword [ecx], 0
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
mov edi, dword [esi + 0xd8]
mov dword [esi + 0xd0], eax
mov eax, edi
xor edi, edi
mov dword [esi + 0xcc], edx
mov edx, edi
div ecx
add eax, 2
mov ecx, dword [esi + 0xcc]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x100061c9
jmp 0x10005c44
mov eax, dword [esi + 0xd4]
mov dword [eax], 0xffffffff
mov ecx, dword [0x2f35a0]
mov edx, dword [esi + 0xe4]
mov edi, dword [edx]
mov ebx, 4
mov eax, ebx
mov dword [esi + 0xc8], ebx
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc0], edi
call 0x10012400
mov eax, esp
mov ecx, eax
mov dword [eax], 0xfce69daa
mov eax, dword [esi + 0xc8]
mov dword [esi + 0xbc], ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xb8], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, eax
mov byte [eax], 0x65
mov al, byte [0x2f35f5]
mov ah, byte [0x2f35f4]
add al, al
shl ah, 3
or al, ah
or al, 0xa1
mov edx, 8
mov byte [esi + 0xb7], al
mov eax, edx
mov dword [esi + 0xb0], ecx
call 0x10012400
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xac], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov dword [esi + 0xa8], eax
mov eax, 4
call 0x10012400
mov eax, esp
mov byte [eax], 0
mov dword [esi + 0xa4], eax
mov eax, 4
call 0x10012400
mov eax, esp
mov byte [eax], 0
mov ecx, dword [esi + 0xa8]
mov byte [ecx], 1
mov edx, dword [esi + 0xb0]
mov bl, byte [edx]
mov bh, bl
mov cl, byte [esi + 0xb7]
and bh, cl
mov edi, dword [esi + 0xb8]
mov byte [edi], bh
mov dword [esi + 0xa0], eax
mov byte [esi + 0x9f], bl
mov eax, dword [esi + 0xb8]
mov cl, byte [eax]
mov dl, cl
mov edi, dword [esi + 0xa8]
xor dl, byte [edi]
shr cl, 1
mov byte [edi], dl
mov byte [eax], cl
mov ebx, dword [esi + 0xa0]
mov cl, byte [ebx]
add cl, 1
mov byte [ebx], cl
cmp cl, 8
mov byte [esi + 0x9e], dl
jb 0x10005d61
mov al, byte [esi + 0x9f]
shl al, 1
mov cl, byte [esi + 0x9e]
and cl, 1
or al, cl
mov edx, dword [esi + 0xb0]
mov byte [edx], al
mov edi, dword [esi + 0xa4]
mov cl, byte [edi]
add cl, 1
mov byte [edi], cl
cmp cl, 8
mov byte [esi + 0x9d], al
jb 0x10005d23
mov eax, dword [esi + 0xac]
mov ecx, dword [eax]
mov edx, dword [esi + 0xbc]
mov bl, byte [edx + ecx]
mov bh, byte [esi + 0x9d]
xor bh, bl
mov byte [edx + ecx], bh
mov ecx, dword [eax]
mov edi, dword [eax + 4]
add ecx, 1
adc edi, 0
mov eax, ecx
sub eax, 4
setb bl
xor edx, edx
test edi, edi
mov bh, dl
mov dword [esi + 0x98], eax
mov byte [esi + 0x97], bh
mov dword [esi + 0x90], ecx
mov dword [esi + 0x8c], edi
mov byte [esi + 0x8b], bl
je 0x10005e33
mov al, byte [esi + 0x97]
mov byte [esi + 0x8b], al
mov al, byte [esi + 0x8b]
test al, al
mov ecx, dword [esi + 0xac]
mov edx, dword [esi + 0x90]
mov dword [ecx], edx
mov edi, dword [esi + 0x8c]
mov dword [ecx + 4], edi
jne 0x10005d0e
jmp 0x10005e5d
mov eax, dword [esi + 0xbc]
sub esp, 8
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esi + 0xc0]
mov dword [ecx], eax
mov ecx, dword [esi + 0xc4]
call ecx
mov ecx, dword [0x2f35a0]
mov edx, dword [esi + 0xe8]
mov edi, dword [edx]
mov ebx, dword [esi + 0xe4]
mov edx, dword [ebx]
sub esp, 8
mov ebx, esp
mov dword [ebx + 4], edi
mov dword [ebx], edx
mov dword [esi + 0x84], eax
call ecx
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x2f31ec
mov ecx, dword [0x2f201c]
mov dword [esi + 0x80], eax
call ecx
add esp, 4
mov ecx, 0xffffffff
mov edx, dword [0x2f35ac]
mov edi, dword [esi + 0xe4]
mov ebx, dword [edi]
sub esp, 0x1c
mov edi, esp
mov dword [edi], ebx
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 6
mov dword [edi + 0x10], 2
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0x40000000
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], ecx
call edx
mov ecx, dword [esi + 0xd4]
mov dword [ecx], eax
mov eax, dword [esi + 0x78]
cmp dword [ecx], eax
je 0x10006037
mov eax, 2
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
xor edi, edi
mov dword [esi + 0x74], edx
mov edx, edi
div ecx
add eax, 2
mov ecx, dword [esi + 0x74]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x10006257
mov eax, dword [0x2f354c]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], 0x2f31ec
mov eax, dword [0x2f2010]
call eax
mov ecx, 2
mov edx, dword [esi + 0xf0]
mov edi, dword [edx]
mov ebx, dword [esi + 0xec]
mov edx, dword [ebx]
mov ebx, dword [0x2f35fc]
mov dword [esi + 0x70], eax
mov eax, dword [0x2f35f8]
imul ebx, ebx
add ebx, 1
mov dword [esi + 0x6c], eax
mov eax, ecx
xor ecx, ecx
mov dword [esi + 0x68], edx
mov edx, ecx
div ebx
add eax, 2
mov ecx, dword [esi + 0x6c]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
mov dword [esi + 0x64], edi
je 0x10006257
jmp 0x10005fcf
mov eax, dword [esi + 0xd4]
mov ecx, dword [eax]
sub esp, 0x14
mov edx, esp
mov edi, dword [esi + 0xe0]
mov dword [edx + 0xc], edi
mov ebx, dword [esi + 0x64]
mov dword [edx + 8], ebx
mov eax, dword [esi + 0x68]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov dword [edx + 0x10], 0
mov ecx, dword [esi + 0x70]
call ecx
cmp eax, 0
jne 0x10006019
mov eax, dword [0x2f3570]
call eax
mov ecx, dword [esi + 0xdc]
mov dword [ecx], eax
mov eax, dword [0x2f3574]
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
sub esp, 4
mov edi, esp
mov dword [edi], edx
call eax
mov dword [esi + 0x60], eax
jmp 0x10006046
mov eax, dword [0x2f3570]
call eax
mov ecx, dword [esi + 0xdc]
mov dword [ecx], eax
mov eax, dword [0x2f35fc]
mov ecx, dword [0x2f35f8]
imul eax, eax
imul eax, eax, 7
sub eax, 1
imul ecx, ecx
cmp eax, ecx
je 0x100062bf
mov eax, 0x104
lea ecx, [0x2f3010]
mov edx, ecx
add edx, 0x4d
add ecx, 0x7f
mov edi, 0
mov ebx, 0x208
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0xd0]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x208
mov dword [esi + 0x58], ebx
mov dword [esi + 0x54], edx
mov dword [esi + 0x50], ecx
mov dword [esi + 0x4c], edi
call 0x10012430
add esp, 0xc
mov eax, dword [0x2f358c]
mov ecx, dword [esi + 0xdc]
mov edx, dword [ecx]
mov edi, dword [esi + 0xe4]
mov ebx, dword [edi]
sub esp, 0x18
mov ecx, dword [esi + 0xd0]
mov dword [esp], ecx
mov dword [esp + 4], 0x104
mov ecx, dword [esi + 0x54]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call eax
add esp, 0x18
mov ecx, dword [0x2f359c]
sub esp, 4
mov edx, esp
mov edi, dword [esi + 0xd0]
mov dword [edx], edi
mov dword [esi + 0x48], eax
call ecx
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
imul ecx, ecx, 7
sub ecx, 1
imul edx, edx
cmp ecx, edx
mov dword [esi + 0x44], eax
je 0x100062bf
jmp 0x1000614a
mov eax, dword [esi + 0x44]
add eax, eax
mov ecx, dword [esi + 0xf4]
mov edx, dword [ecx]
sub esp, 0xc
mov edi, esp
mov dword [edi + 8], eax
mov eax, dword [esi + 0xd0]
mov dword [edi + 4], eax
mov dword [edi], edx
call fcn.100108b0
add esp, 0xc
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x2f31ec
mov ecx, dword [0x2f201c]
mov dword [esi + 0x40], eax
call ecx
add esp, 4
mov ecx, dword [esi + 0xdc]
mov edx, dword [ecx]
mov dword [esi + 0x3c], eax
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
mov eax, 8
mov ecx, dword [0x2f35fc]
mov dword [esi + 0x38], ecx
shl eax, cl
mov edx, dword [esi + 0x38]
imul eax, edx
and edx, eax
mov eax, dword [esi + 0x38]
add eax, edx
mov dword [0x2f35fc], eax
jmp 0x10005a84
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x11c]
mov dword [eax], ecx
mov edx, dword [esi + 0xf0]
mov edi, dword [esi + 0x108]
mov dword [edx], edi
mov ebx, dword [esi + 0xec]
mov eax, dword [esi + 0x104]
mov dword [ebx], eax
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xfc]
mov dword [eax], ecx
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0x100]
mov dword [eax], ecx
mov eax, dword [esi + 0xe0]
mov dword [eax], 0
mov eax, dword [esi + 0xdc]
mov dword [eax], 0
mov eax, dword [0x2f35f8]
mov ecx, eax
sar ecx, 0
cdq
idiv ecx
mov eax, edx
xor edi, edi
mov dword [esi + 0x34], edx
mov edx, edi
div ecx
mov ecx, dword [esi + 0x34]
xor ecx, eax
mov edx, ecx
add edx, eax
and edx, ecx
add ecx, edx
mov dword [0x2f35f8], ecx
jmp 0x10005b69
mov eax, dword [0x2f354c]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], 0x2f31ec
mov eax, dword [0x2f2010]
call eax
mov ecx, 2
mov edx, dword [0x2f35fc]
mov dword [esi + 0x30], eax
mov eax, ecx
xor ecx, ecx
mov dword [esi + 0x2c], edx
mov edx, ecx
mov ecx, dword [esi + 0x2c]
div ecx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, eax
shl edx, cl
and edx, eax
mov ecx, edx
shl eax, cl
mov edi, eax
sub edi, edx
mov edx, edi
and edx, eax
mov eax, edi
mov dword [esi + 0x28], edx
cdq
mov ebx, dword [esi + 0x28]
idiv ebx
add edx, edi
add edi, edx
mov dword [0x2f35fc], edi
jmp 0x10005f5a
mov eax, 1
mov ecx, 0x104
lea edx, [0x2f3010]
mov edi, edx
add edi, 0x4d
add edx, 0x7f
mov ebx, 0
mov dword [esi + 0x24], eax
mov eax, 0x208
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0xd0]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x208
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], edx
call 0x10012430
add esp, 0xc
mov eax, dword [0x2f358c]
mov ecx, dword [esi + 0xdc]
mov edx, dword [ecx]
mov edi, dword [esi + 0xe4]
mov ebx, dword [edi]
sub esp, 0x18
mov ecx, dword [esi + 0xd0]
mov dword [esp], ecx
mov dword [esp + 4], 0x104
mov ecx, dword [esi + 0x14]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call eax
add esp, 0x18
mov ecx, dword [0x2f359c]
sub esp, 4
mov edx, esp
mov edi, dword [esi + 0xd0]
mov dword [edx], edi
mov dword [esi + 0xc], eax
call ecx
mov ecx, dword [0x2f35fc]
sub ecx, 1
shr ecx, 0
mov dword [esi + 8], ecx
mov edx, dword [esi + 0x24]
shr edx, cl
mov ecx, edx
mov edi, dword [esi + 8]
shl edi, cl
mov ebx, edi
add ebx, edx
mov dword [esi + 4], eax
mov eax, ebx
cdq
idiv edi
add eax, ebx
mov dword [0x2f35fc], eax
jmp 0x1000606a