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

Disassembly:
sub esp, 0x38
mov eax, dword [0x1004d3e8]
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], edx
movzx ecx, word [edx + eax*2]
dec eax
mov dword [0x1004d3e8], eax
and ecx, 0x1d05
mov dword [esp + 0x3c], ecx
mov eax, 0x5cc2f1b
mov ecx, dword [0x1004d3bc]
mul ecx
mov ebp, dword [0x1004d3b4]
shr edx, 6
inc ebp
imul eax, edx, 0xb0a
xor edx, edx
mov bx, word [0x1004d400]
mov dword [0x1004d3b4], ebp
mov dword [esp + 0x1c], edi
sub ecx, eax
mov eax, dword [0x1004d3f8]
mov dword [esp + 0x38], ecx
mov ecx, dword [0x1004d3d8]
movzx eax, word [ecx + eax*4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
movzx ecx, ax
mov eax, dword [esp + 0x58]
movzx eax, word [eax + 0x3e0]
imul eax, ecx
mov ecx, dword [0x1004d408]
movzx eax, ax
mov dword [esp + 0x18], eax
imul eax, dword [0x1004d3f4], 0xd89
mov dword [esp + 0x44], eax
mov al, byte [0x1004d3c6]
movzx eax, al
and ax, word [0x1004d3fc]
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, 0x161d
sub eax, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov eax, dword [0x1004d438]
mov eax, dword [eax + 0x3b40]
xor eax, 0xf1b
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
inc dword [eax]
mov esi, dword [eax]
imul eax, dword [0x1004d3b8], 0x6a1
add esi, esi
div dword [ecx + esi*8]
movzx eax, bx
mov ecx, 0x17c5
add cx, word [edi + ebp*2 + 0x10]
dec ebp
and dword [0x1004d43c], edx
lea edx, [edi + eax*2]
movzx eax, word [edx]
movzx ecx, cx
imul ecx, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [0x1004d410]
mov word [edx], cx
cmp ebp, dword [0x1004d3c0]
jg 0x10006c1a
movzx ecx, byte [esp + 0x60]
lea esi, [ebp + 0x1e]
xor edx, edx
mov eax, 0x1e0c
div ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x20]
sub eax, ebp
mov dword [esp + 0x2c], eax
lea eax, [ebp + 0x14]
mov dword [esp + 0x34], edx
lea eax, [ecx + eax*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
lea esi, [eax + esi*4]
mov al, byte [esp + 0x68]
mov dword [esp + 0x50], esi
mov byte [esp + 0x58], al
mov ecx, dword [esp + 0x30]
xor edx, edx
mov esi, dword [esp + 0x24]
movzx eax, bx
movzx ebx, word [ecx + eax*2]
mov ecx, dword [0x1004d3c8]
add ebx, dword [0x1004d424]
movzx edi, byte [ecx + 0x906]
movzx ecx, si
div ecx
mov cl, byte [esp + 0x58]
mov esi, dword [esp + 0x50]
movzx eax, cl
dec cl
push eax
push 0xbcc
mov esi, dword [esi]
add esi, 0x13c
mov byte [esp + 0x60], cl
push esi
push 0x36e
push edx
mov edx, edi
mov ecx, ebx
call fcn.1000aa20
mov ecx, dword [esp + 0x30]
mov edx, ebp
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
xor dword [esp + 0x28], 0x1200
mov word [ecx + ebp*2], ax
movzx eax, word [esi]
mov ecx, dword [esp + 0x38]
imul eax, ebp
push eax
push dword [esp + 0x4c]
movzx eax, cx
mov ecx, 0x1ad3
push eax
push 0xda3
push ebx
call fcn.1000aa20
add dword [esp + 0x78], 4
dec ebx
inc ebp
mov dword [esp + 0x54], ebx
mov bx, word [0x1004d400]
add esi, 2
add esp, 0x28
mov dword [0x1004d43c], eax
mov dword [esp + 0x28], esi
cmp ebp, dword [0x1004d3c0]
jle 0x10006b56
jmp 0x10006c22
mov al, byte [esp + 0x68]
mov byte [esp + 0x58], al
mov eax, dword [0x1004d3c8]
mov ecx, dword [0x1004d3f0]
mov esi, dword [esp + 0x38]
mov al, byte [eax + ecx]
or al, 0xc2
add al, 0x79
movzx ecx, al
mov eax, 0x7dc
sub eax, ecx
movzx ecx, byte [esi + 0x173f]
cdq
idiv ecx
mov edx, dword [0x1004d3e0]
mov byte [esi + 0x173f], al
mov eax, dword [esp + 0x14]
movzx ecx, ax
movzx eax, dx
mov edi, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x50], eax
cmp ecx, eax
jb 0x10006cd9
movzx eax, word [0x1004d430]
xor edx, edx
sub eax, dword [0x1004d3f8]
mov ecx, dword [esp + 0x18]
movzx ebp, byte [0x1004d3c5]
sub ebp, dword [0x1004d3f4]
movzx ecx, cx
div ecx
mov ecx, dword [esp + 0x3c]
movzx eax, bx
movzx esi, word [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x38], edx
mov dx, word [0x1004d428]
mov dword [esp + 0x3c], eax
imul esi, dword [esp + 0x38]
mov eax, ebp
movzx ecx, dx
inc edi
cdq
idiv ecx
movzx esi, si
cmp edi, ebx
jge 0x10006cb6
mov eax, dword [esp + 0x3c]
mov word [0x1004d428], dx
mov word [eax], si
mov ecx, dword [0x1004d3f0]
mov eax, dword [0x1004d418]
mov ebp, dword [esp + 0x1c]
mov edx, dword [0x1004d3e8]
mov ebx, edx
inc edx
mov edi, dword [eax + ecx*4]
mov ecx, dword [0x1004d3e0]
mov eax, dword [esp + 0x20]
sub edi, dword [esp + 0x10]
mov dword [0x1004d3e8], edx
movzx edx, byte [ebp + edx*2]
movzx esi, word [eax + ecx*2]
movzx eax, word [ebp + 0x131a]
movzx ecx, word [0x1004d400]
imul esi, eax
mov eax, dword [0x1004d404]
movzx eax, byte [ecx + eax]
movzx ecx, byte [0x1004d3c6]
imul eax, edx
mov edx, 0x1613
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x50], al
push dword [esp + 0x50]
imul eax, dword [esp + 0x38], 0xd11
push eax
push 0x4e0
push esi
push ecx
push edi
push ebx
push dword [0x1004d3cc]
push ecx
mov ecx, 0x4d3
call fcn.1000a180
mov di, word [0x1004d3ec]
add esp, 0x24
mov ecx, dword [esp + 0x5c]
mov si, word [0x1004d400]
movzx edx, di
inc di
mov byte [esp + 0x50], al
mov eax, dword [esp + 0x4c]
mov word [0x1004d3ec], di
xor si, word [ecx + edx*4 + 0x48]
mov edx, dword [esp + 0x54]
movzx ecx, byte [esp + 0x60]
imul ecx, dword [eax + 0x5d00]
mov word [0x1004d400], si
mov eax, dword [edx]
mov dword [edx + eax*4], ecx
mov ebx, dword [edx + 0x584c]
cmp ebx, 0x26f
je 0x10006f6e
movzx eax, byte [esp + 0x58]
mov esi, 0x1586
mov edx, dword [esp + 0x64]
sub esi, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x64], esi
lea ecx, [eax*2]
movzx eax, byte [esp + 0x50]
mov dword [esp + 0x5c], eax
add ecx, ebp
mov eax, dword [esp + 0x18]
movzx eax, ax
mov dword [esp + 0x2c], ecx
lea eax, [edx + eax*4]
mov dword [esp + 0x4c], eax
movzx eax, di
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x999]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
lea eax, [eax + ebx*4]
add eax, 0x50
mov dword [esp + 0x60], eax
mov eax, dword [0x1004d438]
xor edx, edx
mov edi, 0x1613
movzx ecx, word [ecx]
mov eax, dword [eax + ebx*4]
div edi
mov eax, dword [esp + 0x10]
mov byte [esp + 0x50], dl
xor eax, 0x5a8
push dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
push eax
movzx eax, byte [0x1004d3ee]
push eax
mov eax, dword [esp + 0x48]
push esi
push ecx
push ebx
push eax
movzx ecx, dx
mov edx, dword [esp + 0x78]
push 0xde3
push ecx
mov ecx, eax
call fcn.1000a180
mov ecx, dword [esp + 0x54]
mov word [ebp + ebx*2], ax
mov eax, dword [esp + 0x78]
dec dword [0x1004d3bc]
mov edi, dword [0x1004d3e4]
mov eax, dword [eax]
lea ecx, [ecx + eax*2]
mov ax, word [esp + 0x90]
sub ax, word [ecx]
mov word [ecx], ax
mov eax, 0xb02c0b03
movzx ecx, word [ebp + 0x3112]
mov ebp, dword [esp + 0x84]
mul ecx
mov ecx, dword [esp + 0x70]
mov eax, 0x1936
shr edx, 0xc
mov word [0x1004d3fc], dx
sub eax, dword [ecx]
mov dword [ecx], eax
mov eax, dword [0x1004d3f0]
mov ecx, dword [0x1004d434]
and ecx, 0x66c
movzx esi, byte [eax + eax + 0x115a]
mov eax, dword [esp + 0x5c]
cdq
idiv dword [ebp]
mov eax, dword [esp + 0x34]
inc eax
push eax
push edx
mov dword [esp + 0x3c], eax
xor edx, edx
mov eax, dword [esp + 0x60]
div dword [0x1004d3bc]
push edx
push 0x1740
push ecx
push esi
lea edx, [edi + 0xa5a]
mov ecx, 0x221
call fcn.10005f40
mov ecx, dword [esp + 0x94]
xor edx, edx
mov word [0x1004d430], ax
add esp, 0x3c
mov eax, dword [0x1004d3d0]
inc ebx
and eax, ecx
mov esi, dword [esp + 0x64]
div dword [0x1004d3e0]
add dword [esp + 0x60], 4
dec esi
mov edx, eax
mov dword [esp + 0x64], esi
mov dword [0x1004d3e0], edx
mov ebp, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x2c]
cmp ebx, 0x26f
jne 0x10006e20
mov si, word [0x1004d400]
jmp 0x10006f74
mov edx, dword [0x1004d3e0]
mov eax, dword [0x1004d3f0]
mov ecx, dword [esp + 0x20]
pop edi
mov word [ecx + eax*4], dx
inc edx
mov eax, dword [0x1004d41c]
movzx ecx, si
mov dword [0x1004d3e0], edx
pop esi
sub dx, word [eax + ecx*4]
mov eax, 0x124e
sub dx, word [esp + 0x3c]
and dx, ax
mov eax, dword [0x1004d3d8]
mov word [ebp + 0x2e80], dx
pop ebp
pop ebx
mov eax, dword [eax + 0x584c]
and eax, 0x1ae0
add esp, 0x38
ret