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

Disassembly:
push ebx
push esi
sub esp, 0xcc
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xc4], eax
mov eax, dword [0x10060ce8]
mov dword [esp + 0xc8], eax
mov eax, dword [0x10060ce4]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xc8]
mov ecx, eax
add ecx, 0x81cd39ea
sub ecx, 1
sub ecx, 0x81cd39ea
imul eax, ecx
and eax, 1
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
mov byte [esp + 0xb6], dl
xor al, cl
mov byte [esp + 0xb7], al
mov cl, byte [esp + 0xb7]
mov al, byte [esp + 0xb6]
or al, cl
mov byte [esp + 0xb5], al
mov al, byte [esp + 0xb5]
test al, 1
jne 0x100396ba
jmp 0x10039c25
mov eax, dword [esp + 0xc0]
add eax, 0x1e
mov dword [esp + 0xb0], eax
mov eax, dword [0x1005f318]
cmp dword [eax + 0x35235c10], 1
sete al
mov byte [esp + 0xa7], al
mov eax, dword [0x10060ce8]
mov dword [esp + 0xa8], eax
mov eax, dword [0x10060ce4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa8]
sub eax, 0xdf38cfb3
sub eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa0]
add edx, 0xdf38cfb3
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
mov byte [esp + 0x9e], cl
cmp eax, 0xa
setl al
mov byte [esp + 0x9f], al
mov cl, byte [esp + 0x9f]
mov al, byte [esp + 0x9e]
mov dl, al
and dl, cl
mov byte [esp + 0x9c], dl
xor al, cl
mov byte [esp + 0x9d], al
mov cl, byte [esp + 0x9d]
mov al, byte [esp + 0x9c]
or al, cl
test al, 1
jne 0x10039789
jmp 0x10039c25
mov cl, byte [esp + 0xa7]
xor eax, eax
test cl, 1
mov dword [esp + 0x98], eax
jne 0x10039bf7
jmp 0x100397a7
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
mov bh, byte [edx + eax]
mov esi, 0x1e
xor edx, edx
div esi
mov eax, dword [esp + 0x94]
mov bl, byte [ecx + edx]
mov dl, bh
xor dl, 0xff
and dl, 0xaa
mov cl, 0xff
xor cl, 0xaa
and bh, cl
mov dh, bl
xor dh, 0xff
and dh, 0xaa
and bl, cl
mov ecx, dword [esp + 0xc4]
or dl, bh
or dh, bl
xor dl, dh
mov byte [ecx + eax], dl
add eax, 0x42cba98a
add eax, 1
sub eax, 0x42cba98a
cmp eax, 7
mov dword [esp + 0x98], eax
jne 0x100397a7
mov eax, dword [0x10060ce8]
mov dword [esp + 0x88], eax
mov ecx, dword [0x10060ce4]
mov dword [esp + 0x8c], ecx
add eax, 0x666b5fe4
sub eax, 1
sub eax, 0x666b5fe4
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x88]
imul eax, ecx
and eax, 1
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
cmp ecx, 0
sete cl
mov byte [esp + 0x7f], cl
cmp eax, 0xa
setl al
mov byte [esp + 0x80], al
xor cl, 0xff
mov byte [esp + 0x81], cl
xor al, 0xff
mov byte [esp + 0x82], al
mov al, 1
xor al, 0
mov byte [esp + 0x83], al
mov cl, byte [esp + 0x83]
mov dl, byte [esp + 0x82]
mov al, byte [esp + 0x81]
mov dh, byte [esp + 0x80]
mov bl, byte [esp + 0x7f]
mov ah, al
and ah, 0
and bl, cl
mov ch, dl
and ch, 0
and dh, cl
or ah, bl
or ch, dh
xor ah, ch
mov byte [esp + 0x7d], ah
or al, dl
xor al, 0xff
or cl, 0
and al, cl
mov byte [esp + 0x7e], al
mov cl, byte [esp + 0x7e]
mov al, byte [esp + 0x7d]
or al, cl
mov byte [esp + 0x7c], al
mov al, byte [esp + 0x7c]
test al, 1
jne 0x1003990e
jmp 0x10039c00
mov eax, dword [0x10060ce8]
mov dword [esp + 0x74], eax
mov eax, dword [0x10060ce4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
xor ecx, ecx
sub ecx, 1
add eax, ecx
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
imul eax, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
and eax, 1
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x68]
cmp ecx, 0
sete cl
cmp eax, 0xa
setl dl
mov al, cl
and al, dl
xor cl, dl
or al, cl
mov byte [esp + 0x67], al
mov al, byte [esp + 0x67]
test al, 1
jne 0x1003997a
jmp 0x10039c46
mov eax, dword [0x1005f318]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
mov dword [eax + 0x35235c10], 1
mov eax, dword [0x10060ce8]
mov dword [esp + 0x54], eax
mov ecx, dword [0x10060ce4]
mov dword [esp + 0x58], ecx
xor ecx, ecx
sub ecx, 1
add eax, ecx
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
imul eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
and eax, 1
cmp eax, 0
sete al
mov byte [esp + 0x4d], al
cmp ecx, 0xa
setl cl
mov byte [esp + 0x4e], cl
and al, cl
mov byte [esp + 0x4f], al
mov cl, byte [esp + 0x4e]
mov al, byte [esp + 0x4d]
xor al, cl
mov byte [esp + 0x4c], al
mov cl, byte [esp + 0x4c]
mov al, byte [esp + 0x4f]
or al, cl
test al, 1
jne 0x10039a08
jmp 0x10039c46
mov eax, dword [0x10060ce8]
mov dword [esp + 0x40], eax
mov ecx, dword [0x10060ce4]
mov dword [esp + 0x44], ecx
sub eax, 0x9ef3ad39
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
sub ecx, 1
add ecx, 0x9ef3ad39
imul eax, ecx
and eax, 1
cmp eax, 0
sete al
mov byte [esp + 0x3f], al
mov bl, byte [esp + 0x3f]
mov eax, dword [esp + 0x44]
cmp eax, 0xa
setl dh
mov cl, bl
xor cl, 0xff
mov dl, dh
xor dl, 0xff
mov al, 1
xor al, 0
mov ah, cl
and ah, 0
and bl, al
mov ch, dl
and ch, 0
and dh, al
or ah, bl
or ch, dh
xor ah, ch
mov byte [esp + 0x3c], ah
or cl, dl
xor cl, 0xff
mov byte [esp + 0x3d], cl
or al, 0
mov byte [esp + 0x3e], al
mov cl, byte [esp + 0x3e]
mov al, byte [esp + 0x3d]
and al, cl
mov byte [esp + 0x3b], al
mov cl, byte [esp + 0x3b]
mov al, byte [esp + 0x3c]
or al, cl
mov byte [esp + 0x3a], al
mov al, byte [esp + 0x3a]
test al, 1
jne 0x10039ab5
jmp 0x10039c00
mov eax, dword [0x10060ce8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [0x10060ce4]
mov dword [esp + 0x2c], ecx
sub eax, 0xc8368eba
sub eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add eax, 0xc8368eba
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
mov byte [esp + 0x26], cl
cmp eax, 0xa
setl al
mov byte [esp + 0x27], al
mov dl, byte [esp + 0x27]
mov cl, byte [esp + 0x26]
mov al, cl
and al, dl
xor cl, dl
or al, cl
mov byte [esp + 0x25], al
mov al, byte [esp + 0x25]
test al, 1
jne 0x10039b30
jmp 0x10039c69
mov eax, dword [0x10060ce8]
mov ecx, dword [0x10060ce4]
mov edx, eax
add edx, 0x7e27c766
sub edx, 1
sub edx, 0x7e27c766
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov byte [esp + 0x1f], cl
mov dl, al
xor dl, 0xff
mov byte [esp + 0x20], dl
xor cl, 0xff
mov byte [esp + 0x21], cl
mov cl, 1
xor cl, 0
mov byte [esp + 0x22], cl
and dl, 0
mov byte [esp + 0x23], dl
and al, cl
mov byte [esp + 0x24], al
mov ah, byte [esp + 0x24]
mov dl, byte [esp + 0x23]
mov ch, byte [esp + 0x22]
mov cl, byte [esp + 0x1f]
mov al, byte [esp + 0x21]
and al, 0
and cl, ch
or dl, ah
mov byte [esp + 0x1d], dl
or al, cl
mov byte [esp + 0x1e], al
mov cl, byte [esp + 0x1e]
mov al, byte [esp + 0x1d]
xor al, cl
mov byte [esp + 0x1c], al
mov cl, byte [esp + 0x21]
mov al, byte [esp + 0x20]
or al, cl
mov byte [esp + 0x1b], al
mov cl, byte [esp + 0x22]
mov al, byte [esp + 0x1b]
xor al, 0xff
or cl, 0
and al, cl
mov byte [esp + 0x1a], al
mov cl, byte [esp + 0x1a]
mov al, byte [esp + 0x1c]
or al, cl
test al, 1
jne 0x10039bf2
jmp 0x10039c69
jmp 0x10039bf7
add esp, 0xcc
pop esi
pop ebx
ret
mov eax, dword [0x1005f318]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add eax, 0x35235c10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [eax], 1
jmp 0x1003990e
mov eax, dword [0x1005f318]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add eax, 0x35235c10
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
jmp 0x100396ba
mov eax, dword [0x1005f318]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add eax, 0x35235c10
mov dword [esp], eax
mov eax, dword [esp]
mov dword [eax], 1
jmp 0x1003997a
jmp 0x10039b30