Function at 0x10003f37
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10063809
call fcn.100630d8
sub esp, 0xfc
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0xe4], edx
je 0x1000477d
mov dword [ebp - 0x30], 0xf378
xor esi, esi
mov dword [ebp - 0x34], 0xfffffffb
mov dword [ebp - 0x14], esi
jmp 0x10003f82
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x50], 0x34859bb7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10003f74
lea eax, [ebp - 0x30]
xor ebx, ebx
push eax
push ecx
push 0x110d
push ecx
push ecx
inc ebx
mov ecx, 0x2ff0
mov dl, bl
call fcn.100022f1
add esp, 0x14
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x30], 0x31
jle 0x100040fe
mov dword [ebp - 0x44], ebx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x2c], 0x4c20f746
push 2
call fcn.10004d6b
push ebx
push 0x43e2
push ebx
push 0x3936
push 0x46f
push 0x89e
push ebx
push 0x90d
lea eax, [ebp - 0x74]
mov dword [ebp - 4], esi
push eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x20], 0xc507b392
push eax
mov edx, 0x4168
mov ecx, 0x54ba
call fcn.1000235e
add esp, 0x28
lea eax, [ebp - 0x30]
lea edx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
push ecx
push ecx
lea ecx, [ebp - 0x2c]
call fcn.10002d41
add esp, 0x10
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], esi
jl 0x100040ea
mov dword [ebp - 0x14], 0x5395f87b
mov dword [ebp - 0x1c], 0xa746
mov dword [ebp - 0x3c], 0x6fa7abe3
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], ebx
jg 0x100040e1
mov edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x14]
mov edx, 0xa429
cmp ebx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x50]
sub edx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x14]
add eax, edx
imul ecx, eax
test ecx, ecx
je 0x10004085
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xffffffff
mov dword [edi + 4], 0xffff
je 0x100040ad
mov edx, ebx
cmp dword [ebp - 0x1c], esi
jne 0x100040af
mov edx, esi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax*4 - 0x50]
imul eax, edx, 5
xor edx, edx
add eax, 0x75ff317e
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ebx
jle 0x10004052
dec dword [ebp - 0x34]
jns 0x1000402e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.10004dc8
inc dword [ebp - 0x30]
jmp 0x10003fa9
xor eax, eax
mov dword [ebp - 0xc0], 7
mov edi, 0xffff
mov dword [ebp - 0xc4], esi
mov word [ebp - 0xd4], ax
lea eax, [ebp + 8]
mov dword [ebp - 4], ebx
push eax
push 0x43c8
push 0x1979
xor dl, dl
lea ecx, [ebp - 0xd4]
call fcn.100047ab
mov eax, dword [0x1035e900]
add esp, 0xc
test bl, al
jne 0x1000416a
or eax, ebx
mov dword [0x1035e900], eax
push 0x1915c
mov byte [ebp - 4], 2
call fcn.100147dc
mov word [0x1035e930], ax
mov byte [ebp - 4], bl
mov eax, dword [0x1035e900]
pop ecx
test al, 2
jne 0x1000418e
or eax, 2
mov dword [0x1035e900], eax
push 0x160ef
mov byte [ebp - 4], 3
call fcn.100147dc
pop ecx
mov word [0x1035e918], ax
mov byte [ebp - 4], bl
mov dword [ebp - 0x20], 0x2a4a
cmp dword [ebp - 0x20], 0x2a67
jle 0x100041cd
mov edi, esi
mov ebx, esi
mov eax, ebx
mov ecx, 0x10081078
xor eax, edi
cdq
push edx
push eax
call fcn.10004aca
inc ebx
cmp ebx, 0x5a14
jl 0x100041a2
inc edi
cmp edi, 0x596
jl 0x100041a0
xor ebx, ebx
mov edi, 0xffff
inc ebx
mov dword [ebp - 0x28], 0xffffffff
mov byte [ebp - 4], 4
cmp dword [ebp - 0x20], 0x26f2
jge 0x10004216
mov edx, str.dwhogdxgc_isgkkl_epnkrq_qkrzny
mov ecx, 0x10081078
call fcn.10006f4f
jmp 0x10004216
mov dword [ebp - 4], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], 0xfbd6c3f0
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x28], 0xce4b0ad8
mov dword [ebp - 0x28], 0xf3ac9d73
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x1c], 0xd090d790
mov dword [ebp - 0x5c], 0xa1804524
mov dword [ebp - 0x28], 0x9ba4
mov dword [ebp - 0x38], 0xa917
mov dword [ebp - 0x18], esi
jmp 0x1000426e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], 0x5b9b55bb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x10004260
mov dword [ebp - 0x18], esi
jmp 0x10004289
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x108], 3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10004278
mov dword [ebp - 0x40], esi
jmp 0x100043df
mov dword [ebp - 0x1c], 2
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x20], 0x2b534de6
mov dword [ebp - 0x48], 9
mov dword [ebp - 0x20], 0xdac842f8
mov dword [ebp - 0x20], 0x1ae9a07b
push 4
call fcn.10004d6b
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0x20], 0xcb6e
push eax
push 0x4173
push ecx
push ecx
push 0x44be
mov dl, bl
call fcn.10003678
add esp, 0x18
cmp dword [ebp - 0x1c], esi
je 0x100043bd
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x14], 0xc46ddcd1
push 3
call fcn.10004d6b
mov byte [ebp - 4], 7
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], esi
jmp 0x10004341
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], 0xcd95da22
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1000432e
push esi
push ecx
push 0x1317
push 0x1dd3
lea edx, [ebp - 0x5c]
call fcn.100025f8
mov eax, dword [ebp - 0x48]
add esp, 0x10
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0xb0]
cmp edi, dword [eax + 8]
mov eax, dword [ebp - 0x3c]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setne dl
mov dword [ebp - 0x100], edx
imul eax, dword [ebp - 0x1c], 0xdbd8
mov ecx, dword [ebp - 0x20]
sub ecx, eax
xor eax, eax
cmp ecx, edx
setg al
imul eax, dword [ebp - 0x48]
test eax, eax
jne 0x100043a5
mov eax, esi
cmp dword [ebp - 0x18], esi
je 0x100043a7
mov eax, ebx
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0xb0]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
call fcn.10004dc8
jmp 0x100043d1
push esi
lea edx, [ebp - 0x48]
mov ecx, 0x616d
call fcn.100029a2
pop ecx
cmp dword [ebp - 0x28], esi
jne 0x100043eb
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], bl
call fcn.10004dc8
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0xffffffe3
jne 0x10004297
jmp 0x100043f6
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], bl
call fcn.10004dc8
mov edi, dword [ebp + 8]
test edi, edi
je 0x10004647
mov dword [ebp - 0x14], 0x69fdf99f
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x28], 0xf13b
mov dword [ebp - 0x20], 0xffffffff
push 2
call fcn.10004d6b
push ebx
push ecx
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x3c], 0x17f215a
mov dword [ebp - 0x1c], 0x2f2aa787
mov edx, 0x66a5
push eax
call fcn.100025f8
mov dword [ebp - 0x14], esi
add esp, 0x10
cmp dword [ebp - 0x14], 0xfffffff0
jne 0x100045ee
push 3
lea ecx, [ebp - 0x98]
call fcn.10004d6b
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0xce028f4e
mov dword [ebp - 0x1c], 0xd1b7136
mov dword [ebp - 0x38], 0xffffffff
push 2
call fcn.10004d6b
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xa
push eax
push 0x3fe8
push 0x578c
push 0x11a3
lea eax, [ebp - 0x24]
mov ecx, 0x4fd4
push eax
push 0x2c16
call fcn.100037d2
add esp, 0x18
mov dword [ebp - 0x24], esi
jmp 0x100044d4
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x68], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x100044ca
mov dword [ebp - 0x24], esi
jmp 0x100044f0
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xec], 0xef314d41
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x100044df
lea eax, [ebp - 0x24]
push eax
push ecx
lea eax, [ebp - 0x8c]
push eax
call fcn.100037b3
mov eax, dword [ebp - 0x68]
add esp, 0xc
dec dword [ebp - 0x68]
cmp eax, ebx
mov eax, dword [ebp - 0x28]
cmovne ebx, esi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x3c]
setl cl
xor ebx, ebx
cmp ecx, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
setle bl
xor edx, edx
sub ebx, 0x57fd8712
cmp eax, ecx
mov eax, dword [ebp - 0x38]
setg dl
xor ecx, ecx
cmp edx, ebx
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x98]
setge dl
xor ecx, ecx
cmp dword [eax], edx
sete cl
xor eax, eax
cmp ecx, 0x1d9
setg al
imul eax, eax, 3
test eax, eax
jne 0x10004575
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0xa4]
xor ebx, ebx
mov dword [eax], 0x3888
mov eax, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ecx + 4]
mov eax, dword [ebp - 0x18]
setle bl
xor edx, edx
cmp eax, ebx
mov eax, dword [ebp - 0x64]
setge dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x8c]
call fcn.10004dc8
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 8
call fcn.10004dc8
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff0
push 1
pop ebx
je 0x1000445f
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], bl
call fcn.10004dc8
call fcn.100022b5
push 0x34
pop ecx
xor edx, edx
div ecx
push ebx
push 0x1cd9
push ebx
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], edx
push eax
lea eax, [ebp - 0xd4]
mov dl, bl
push eax
push 0x19e2
push 0x7d68
push 0x3f96
push 0x1035e930
mov ecx, 0x1035e918
call fcn.100026f5
add esp, 0x24
dec edi
jne 0x10004401
mov dword [ebp - 0x18], 0xb064
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x1c], ebx
push 2
call fcn.10004d6b
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x14], 5
push 2
call fcn.10004d6b
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
push eax
push esi
push 0x7f15
push esi
push 0x1b45
push 0xdf
mov edx, 0x4850
lea ecx, [ebp - 0xe0]
call fcn.10003f37
add esp, 0x14
lea eax, [ebp - 0x54]
push 0x3b5b
push ecx
push eax
push ecx
push ebx
push 0x40c1
push 0x3edd
push ecx
lea eax, [ebp - 0xbc]
push eax
call fcn.100027e8
mov eax, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x18]
add esp, 0x28
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0xe0]
setg dl
xor ecx, ecx
cmp edx, 0x707
setne cl
xor edx, edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xbc]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 4], ecx
mov dword [ebp - 0x14], esi
jmp 0x10004739
xor cl, cl
call fcn.100039e8
xor cl, cl
call fcn.10003aad
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xf
jne 0x10004728
lea ecx, [ebp - 0xbc]
call fcn.10004dc8
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], bl
call fcn.10004dc8
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0xd4]
cmp ecx, eax
je 0x1000476e
push 0xffffffffffffffff
push esi
push eax
call fcn.100050ff
push esi
push ebx
lea ecx, [ebp - 0xd4]
call fcn.1000522d
jmp 0x1000479a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0
jmp 0x10004795
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x383c67ee
inc dword [edx]
cmp dword [edx], 2
jl 0x10004788
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret