Function at 0x103bd30
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, 0xfffffff0
sub esp, 0xe0
mov esi, esp
mov edi, ecx
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 2
mov dword [esi + 0xb8], 1
push 0x565577c1
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
lea ecx, [esi + 0x28]
lea edx, [esi + 0xb0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
je 0x103bdcb
cmp dword [edi], 0xffffffff
jne 0x103be76
jmp 0x103c2db
push 0xb646c33f
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
mov dword [esi], eax
push 0xe7db718c
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
mov dword [esi + 8], eax
push 0xa3d60213
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
mov dword [esi + 4], eax
mov ebx, dword [esi + 0x28]
jmp 0x103be23
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x103be55
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x103be20
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 8]
cmp eax, 0xffffffff
jne 0x103be55
push dword [edi]
call dword [esi + 4]
mov dword [edi], 0xffffffff
jmp 0x103be20
push 0xeb17dc3b
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
push dword [esi + 0x28]
call eax
cmp dword [edi], 0xffffffff
je 0x103c2db
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
nop
nop
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x103be80
mov edx, dword [ebp + 8]
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x103be90
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x103bea0
mov dword [esi + 0x1c], edi
add eax, 3
and eax, 0xfffffffc
call fcn.0102a400
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x30], 0xfffec9b0
mov dword [esi + 0x34], 0x999f9afc
mov dword [esi + 0x38], 0xf3b0bc99
mov dword [esi + 0x3c], 0xed2ad6d3
mov dword [esi + 0x40], 0xa180
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0x1c
xor dl, byte [esi + eax + 0x30]
add dl, 0x74
mov byte [esi + eax + 0x30], dl
inc eax
cmp eax, 0x14
jne 0x103bef0
mov dword [esi + 0xc], 0x316a5865
mov byte [esi + 0x10], 0x10
mov dword [esi + 0x11], 0
xor edi, edi
xor edx, edx
nop
nop
nop
nop
mov eax, edi
and eax, 0xa
mov ebx, edx
xor ebx, 0xdce46605
add ebx, eax
movzx eax, byte [esi + edx + 0xc]
xor ebx, eax
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0xe6
mov byte [esi + edx + 0xc], bl
inc edx
add edi, 2
cmp edx, 9
jne 0x103bf20
movzx eax, byte [esi + 0xc]
mov ebx, dword [esi]
test al, al
je 0x103bf6b
lea edx, [esi + 0xd]
mov ebx, dword [esi]
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x103bf60
mov byte [ebx], 0
movzx eax, byte [ecx]
test al, al
je 0x103bf8d
inc ecx
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x103bf80
jmp 0x103bf90
mov edx, dword [ebp + 0xc]
mov byte [ebx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x103bfab
lea ecx, [esi + 0x31]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x103bfa0
mov byte [ebx], 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx]
test al, al
je 0x103bfcb
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x103bfc0
mov byte [ebx], 0x3a
mov dword [esi + 0x30], 0x637f8b85
mov dword [esi + 0x34], 0x534f5f53
mov dword [esi + 0x38], 0x248a6355
mov dword [esi + 0x3c], 0x50554759
mov dword [esi + 0x40], 0x2f5f5a43
mov dword [esi + 0x44], 0x487da7a9
mov dword [esi + 0x48], 0x58474f4e
mov dword [esi + 0x4c], 0x41414c38
mov dword [esi + 0x50], 0x435f917a
mov dword [esi + 0x54], 0xb3afbfb3
mov dword [esi + 0x58], 0x98505cb5
mov dword [esi + 0x5c], 0xa873a6b9
mov dword [esi + 0x60], 0xb491a3bd
mov dword [esi + 0x64], 0xd3a3a6bf
mov dword [esi + 0x68], 0xd2a7826d
mov dword [esi + 0x6c], 0x848e759e
mov dword [esi + 0x70], 0x63b1a3a5
mov dword [esi + 0x74], 0x869ab89f
mov dword [esi + 0x78], 0xb4ab9285
mov dword [esi + 0x7c], 0xb0ab9091
mov dword [esi + 0x80], 0x51bd91b0
mov dword [esi + 0x84], 0x90a19ca4
mov dword [esi + 0x88], 0x616fbc83
mov dword [esi + 0x8c], 0x429588a7
mov dword [esi + 0x90], 0xa0908c9f
mov dword [esi + 0x94], 0xf2f5eefb
mov dword [esi + 0x98], 0xf6e43c84
mov dword [esi + 0x9c], 0xf0fff6f6
mov dword [esi + 0xa0], 0x3222cbf6
mov dword [esi + 0xa4], 0xa04082f
mov word [esi + 0xa8], 0x1902
mov dword [esi + 0xaa], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xdc
xor cl, byte [esi + eax + 0x30]
add cl, 0xb4
mov byte [esi + eax + 0x30], cl
mov ecx, eax
and ecx, 0x1a
xor eax, 0xdfc2ee9a
lea eax, [eax + ecx*2]
add eax, 0x203d1167
cmp eax, 0x7e
jb 0x103c0e0
inc ebx
movzx eax, byte [edx]
test al, al
je 0x103c11b
inc edx
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x103c110
mov byte [ebx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x103c13b
lea ecx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x103c130
mov byte [ebx], 0
mov edi, dword [esi]
sub ebx, edi
push 0xefae2064
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x1c]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x103c1a7
cmp dword [edi], 0xffffffff
je 0x103c1a7
push 0xea8d1240
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0xef94d8]
call fcn.0105f180
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x103c464
cmp eax, 0xffffffff
je 0x103c2db
push 0x400
call fcn.0102a430
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
add eax, 0x400
mov dword [esi + 0x14], eax
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.0103c6e0
mov cl, 1
mov dword [esi + 8], ecx
test al, al
je 0x103c44c
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x103c343
mov dword [esi + 8], ecx
mov dword [esi], eax
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea eax, [ecx + eax*2]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x20], ecx
lea edi, [ecx + ebx]
cmp edi, eax
ja 0x103c218
mov edi, eax
push edi
call fcn.0102a430
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x103c335
mov dword [esi + 0x24], edi
cmp eax, ecx
mov dword [esi + 4], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x18], eax
jbe 0x103c2e2
cmp edx, eax
jbe 0x103c2e2
test ebx, ebx
je 0x103c321
mov edx, dword [esi + 4]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x18]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x103c27a
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x103c267
add eax, edx
add ecx, edx
add edx, dword [esi + 4]
mov edi, dword [esi]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x103c321
neg edx
xor edi, edi
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x103c28c
jmp 0x103c321
xor eax, eax
jmp 0x103c464
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x20]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x103c321
mov ecx, dword [esi + 4]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.0102a440
add esp, 4
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
add edi, eax
mov dword [esi + 0x14], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x30], 0xd9e6e7d4
mov dword [esi + 0x34], 0xca34c839
mov dword [esi + 0x38], 0xce32cc24
mov dword [esi + 0x3c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ecx + 0x30]
lea eax, [ecx + 0x26f11343]
xor eax, edx
mov edi, 0x590eecbc
sub edi, ecx
or edi, eax
not edi
add edi, edi
sub edi, ecx
mov ebx, 0x42
sub ebx, edi
lea eax, [edi - 0x26f11343]
xor eax, edx
and ebx, edx
add ebx, ebx
sub ebx, eax
mov eax, ebx
xor eax, 0x50
and ebx, 0x2f
add ebx, ebx
sub ebx, eax
inc bl
mov byte [esi + ecx + 0x30], bl
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0x10
jb 0x103c380
movzx edx, byte [esi + 0x30]
mov edi, dword [esi]
mov eax, edi
mov dword [esi + 4], edi
test dl, dl
mov ecx, dword [esi + 0x1c]
je 0x103c435
lea eax, [esi + 0x30]
mov dword [esi + 8], eax
mov ebx, edi
mov dword [esi + 4], edi
jmp 0x103c40d
mov eax, dword [esi + 8]
movzx edx, byte [eax]
test dl, dl
mov ecx, dword [esi + 0x1c]
je 0x103c435
movzx eax, byte [ebx]
test al, al
je 0x103c43b
inc ebx
inc dword [esi + 8]
mov ecx, dword [esi + 4]
lea edi, [ecx + 1]
cmp al, dl
je 0x103c429
mov eax, edi
mov dword [esi + 4], edi
mov ebx, edi
mov edi, dword [esi]
je 0x103c400
lea eax, [esi + 0x30]
mov dword [esi + 8], eax
jmp 0x103c400
cmp dword [esi + 4], 0
jne 0x103c47d
push 0x3ea
call fcn.0103ba20
mov dword [esi + 8], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x103c461
cmp eax, dword [esi + 0x10]
je 0x103c461
push eax
call fcn.0102a440
add esp, 4
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
not bl
movsx eax, bl
inc ecx
add ecx, eax
mov ecx, dword [esi + 0x1c]
je 0x103c44c
mov edx, edi
mov eax, dword [esi + 0x18]
sub edx, eax
je 0x103c4a1
mov ebx, eax
xor ecx, ecx
mov dword [esi], edi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, dword [esi]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0x1c]
add dword [esi + 0x10], edx
lea eax, [esi + 0xc]
push eax
call fcn.0103c6e0
test al, al
je 0x103c445
mov dword [esi + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x103c620
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea eax, [ecx + eax*2]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x24], ecx
lea edi, [ecx + ebx]
cmp edi, eax
ja 0x103c4e6
mov edi, eax
push edi
call fcn.0102a430
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x103c612
mov dword [esi + 0x2c], edi
cmp eax, ecx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 4]
mov dword [esi + 0x20], eax
jbe 0x103c5bf
cmp edx, eax
jbe 0x103c5bf
test ebx, ebx
je 0x103c5fe
mov edx, dword [esi + 0x18]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x20]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x103c553
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x103c540
add eax, edx
add ecx, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi]
sub edi, dword [esi + 4]
cmp edi, 0xfffffff8
ja 0x103c5fe
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x103c570
jmp 0x103c5fe
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x24]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x103c5fe
mov ecx, dword [esi + 0x18]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.0102a440
add esp, 4
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
add edi, eax
mov dword [esi + 0x14], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x30], 0x3735
mov byte [esi + 0x32], 0x3e
lea eax, [esi + 0x33]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx + 0x30]
lea edi, [ecx + 0x485ee80a]
lea edx, [ebx + ebx]
not edx
add edx, ebx
mov eax, 0x3a117f5
sub eax, ecx
and eax, 0x281130b
and edi, 0x400ca814
or edi, eax
lea eax, [ecx - 0x37a117f6]
or eax, ebx
mov ebx, edi
xor ebx, 0x8ad3530b
and ebx, edx
xor edi, edx
xor edi, 0x752cacf4
add edi, edx
sub edi, ebx
and edi, eax
mov eax, edi
xor eax, 0x32
or edi, 0x162577cd
and eax, edi
add eax, edi
inc al
mov byte [esi + ecx + 0x30], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 6
jb 0x103c650
xor edx, edx
mov edi, dword [esi]
nop
movsx ecx, byte [edi + edx]
movzx ebx, byte [esi + edx + 0x30]
test ecx, ecx
je 0x103c470
inc edx
cmp cl, bl
je 0x103c6c0
jmp 0x103c470