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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10062c77
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
mov byte [esp + 0x28], dl
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
test dl, dl
je 0x1000248b
mov dword [esp + 0x20], 0x1588
cmp dword [esp + 0x20], 0x1948
push 0
pop ebx
jle 0x10001db5
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1007e2d8
xor eax, esi
cdq
push edx
push eax
call fcn.10004c4e
inc edi
cmp edi, 0x58e4
jl 0x10001d8e
inc esi
cmp esi, 0x4af7
jl 0x10001d8c
mov edi, dword [esp + 0xc]
lea eax, [esp + 0x7c]
mov dword [esp + 0x58], 0xfffe
push eax
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], 0x3126ff23
push eax
push ecx
lea eax, [esp + 0x5c]
mov dword [esp + 0x78], 0xfffffffa
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x74], ebx
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x90], ebx
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x78], 0x884c
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], 0xfff9
push eax
call fcn.10002824
push 0xdd3
push 0x6b6b
push 0x5cb5
xor dl, dl
lea ecx, [esp + 0x74]
call fcn.100042f5
xor eax, eax
mov dword [esp + 0xd8], 7
add esp, 0x2c
mov dword [esp + 0xa8], ebx
mov word [esp + 0x98], ax
push 4
pop eax
push 0x6c78
push 0x5b64
push 0x7596
push ebx
mov dword [esp + 0x10c], ebx
push 0x30b2
mov dword [esp + 0xdc], eax
push 0x782d
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
push 0x7018
push ecx
mov dword [esp + 0xf4], eax
mov ecx, 0x2b17
mov dword [esp + 0x2c], 0xa473eb90
call fcn.10001b2e
add esp, 0x20
mov dword [esp + 0xc], ebx
push 3
pop ebx
jmp 0x10001ee2
lea eax, [esp + 0x27]
mov byte [esp + 0x27], 0
push eax
push 0x2aa7
mov ecx, 0x5ff7
call fcn.10002549
mov eax, dword [esp + 0x14]
pop ecx
pop ecx
mov eax, dword [esp + eax*4 + 0xc8]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x10001eb8
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x98]
push esi
call fcn.10004dfd
mov eax, dword [0x100e1084]
test al, 1
jne 0x10001f2f
or eax, 1
mov dword [0x100e1084], eax
push 0x16f10
mov byte [esp + 0x100], 1
call fcn.100438c2
mov word [0x100e108c], ax
mov byte [esp + 0x100], 0
mov eax, dword [0x100e1084]
pop ecx
test al, 2
jne 0x10001f5c
or eax, 2
mov dword [0x100e1084], eax
push 0x1906c
mov byte [esp + 0x100], 2
call fcn.100438c2
pop ecx
mov word [0x100e1080], ax
mov byte [esp + 0xfc], 0
test esi, esi
je 0x100021ae
mov dword [esp + 0x18], 0xac204e2d
mov dword [esp + 0x10], 0x188753e1
mov dword [esp + 0x2c], 0xfffffffb
mov dword [esp + 0x20], 0xe266bc59
mov dword [esp + 0xc], 0
jmp 0x10001f9e
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x38], 6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10001f8e
mov dword [esp + 0x18], 0xfffffff3
jmp 0x1000204e
mov dword [esp + 0x74], 0x1ba028ea
lea ecx, [esp + 0xe4]
push 1
call fcn.10004f00
push 0
lea eax, [esp + 0xe8]
mov byte [esp + 0x100], bl
push 0x26f8
mov dword [esp + 0x8c], 7
lea edx, [esp + 0xe0]
push eax
mov ecx, 0x47e6
call fcn.10001cf2
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x14]
push eax
push ecx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x88]
call fcn.10002b9d
add esp, 0x14
mov edx, 0x1682
mov ecx, 0x4819
push 0
call fcn.10004439
pop ecx
lea ecx, [esp + 0xe4]
mov byte [esp + 0xfc], 0
call fcn.10004f62
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x12
jg 0x10001fb2
mov dword [esp + 0x10], 0
jmp 0x10002170
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x70], 0xb9878ff5
mov dword [esp + 0x80], 0x5d9aeb8e
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x38], 0
jne 0x10002106
mov eax, dword [esp + 0x10]
xor edx, edx
push 3
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setge dl
xor ebx, ebx
cmp edx, 0xe88fefd
setne bl
xor ecx, ecx
cmp ebx, eax
pop ebx
setge cl
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
cmp dword [esp + 0x20], eax
je 0x10002106
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, 0x369b4a57
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x2c]
sub ecx, eax
xor eax, eax
cmp ecx, edx
setge al
sub eax, 0x7ea9b924
neg eax
sbb eax, eax
lea ecx, [eax + 0x590885d0]
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x38], ecx
jle 0x10002159
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov dword [esp + 0x80], 0x7b3fa872
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x10002066
call fcn.10001b15
push 0x34
pop ecx
xor edx, edx
sub esp, 0x10
div ecx
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x8c]
mov dword [esp + 0x8c], edx
call fcn.1000292c
add esp, 0x14
dec esi
jne 0x10001f64
mov dword [esp + 0x14], 0xb5052061
xor eax, eax
mov dword [esp + 0x1c], 0xde0980db
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], 0x7924a04c
cmp dword [esp + 0x14], eax
je 0x100021d3
inc eax
cmp eax, 0xcb4e76ab
sbb eax, eax
xor ecx, ecx
neg eax
add eax, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
test eax, eax
mov eax, dword [esp + 0x14]
setg cl
sub esi, ecx
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x14]
setl cl
xor edx, edx
cmp ecx, esi
setge dl
add eax, edx
xor edx, edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 3
test eax, eax
je 0x1000227d
lea eax, [esp + 0x1c]
mov dword [esp + 0x54], 0xffffffff
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x50], 0
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x70], 0xfffffff9
push eax
xor esi, esi
lea eax, [esp + 0x20]
inc esi
push esi
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x64]
push eax
push ecx
lea ecx, [esp + 0x74]
call fcn.10001b2e
add esp, 0x20
jmp 0x10002378
push 2
lea ecx, [esp + 0xc0]
call fcn.10004f00
push 0x41dc
push 0x25d4
xor esi, esi
mov byte [esp + 0x104], 4
inc esi
lea eax, [esp + 0xe4]
push esi
push 0xf9a
push eax
push esi
push 0x63c1
lea eax, [esp + 0xd8]
mov edx, 0x522
push 0
push eax
mov ecx, 0x48f9
call fcn.10002961
add esp, 0x24
mov dword [esp + 0x1c], 0
jmp 0x1000233e
push ebx
lea ecx, [esp + 0xb4]
call fcn.10004f00
lea eax, [esp + 0xe0]
mov byte [esp + 0xfc], 5
push eax
push ecx
lea edx, [esp + 0xb8]
call fcn.100028d6
lea eax, [esp + 0xb8]
xor dl, dl
push eax
push 0x3d7e
lea eax, [esp + 0x40]
mov ecx, 0x7430
push eax
push esi
call fcn.10001d3f
add esp, 0x18
mov byte [esp + 0xfc], 4
lea ecx, [esp + 0xb0]
call fcn.10004f62
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 5
jge 0x100022da
push esi
lea eax, [esp + 0x2c]
mov edx, 0xf30
push eax
push 0x4622
lea ecx, [esp + 0xc8]
call fcn.10001cf2
add esp, 0xc
mov byte [esp + 0xfc], 0
lea ecx, [esp + 0xbc]
call fcn.10004f62
mov dword [esp + 0x14], 0
jmp 0x10002458
mov dword [esp + 0x20], 6
mov dword [esp + 0xc], 0
jmp 0x100023aa
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x8c], 0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x10002397
mov dword [esp + 0xc], 0
jmp 0x100023ca
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x5c], 0xfffffffb
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x100023ba
mov eax, dword [esp + 0x8c]
xor edx, edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, 0xf9ab13fd
setg dl
add edx, 6
cmp eax, edx
mov eax, dword [esp + 0x90]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x28]
mov ecx, 0xffff
sete dl
sub ecx, eax
mov eax, dword [esp + 0x1c]
add eax, ecx
cmp eax, edx
jne 0x10002430
cmp dword [esp + 0x8c], 0
jne 0x10002430
xor eax, eax
jmp 0x10002432
mov eax, esi
mov dword [esp + 0x30], eax
xor edx, edx
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x30]
cmp eax, ecx
setg dl
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffef
jne 0x10002385
lea eax, [esp + 0x98]
cmp edi, eax
je 0x1000247a
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.100052b4
push 0
push esi
lea ecx, [esp + 0xa0]
call fcn.100053e2
jmp 0x100024ae
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [edx], 3
jge 0x100024ae
mov esi, dword [ebp + 0x14]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xa1ae
inc dword [edx]
cmp dword [edx], 3
jl 0x1000249c
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret