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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov eax, dword [0x4881810]
xor eax, esp
mov dword [esp + 0xa8], eax
cmp dword [0x48864e4], 0
push ebx
push esi
push edi
je 0x100081e8
push 0x4883dac
push 0x3ea
call fcn.100341f0
add esp, 8
push 0
push 0
call fcn.1000bd40
push 5
call fcn.10009e60
push 0x680000
call fcn.100377a0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x10008238
push 0x4883df4
push dword [0x498d548]
push 0x4885094
push 0x3ea
call fcn.100341f0
push 1
push 0x494ae60
call fcn.10034ff0
add esp, 0x18
lea eax, [ebx + 0x300000]
mov ecx, 2
mov dword [esp + 0x48], eax
lea eax, [ebx + 0x600000]
mov dword [esp + 0x44], eax
movzx eax, word [0x498d086]
sub eax, 5
mov dword [esp + 0x3c], ecx
cmp eax, ecx
jle 0x10008d05
jmp 0x10008270
movzx eax, word [0x498d084]
mov edx, 2
sub eax, 5
mov dword [esp + 0x18], edx
cmp eax, edx
jle 0x10008ce5
mov ebx, ecx
lea eax, [ecx + 1]
neg ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], ebx
lea esi, [ecx + 3]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], ebx
lea edi, [ecx + 0x200]
lea eax, [ecx + 0x1ff]
mov dword [esp + 0x68], edi
lea ebx, [ecx + 0x1fe]
mov dword [esp + 0x40], eax
lea esi, [ecx + 0x1fd]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], esi
mov esi, ecx
mov dword [esp + 0x20], esi
cmp ecx, edi
jge 0x100084bd
mov ecx, edx
mov eax, edx
and ecx, 1
neg eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
nop
movzx eax, word [0x498d086]
sub eax, 2
cmp esi, eax
jge 0x100084b5
mov edx, dword [0x498d090]
mov eax, esi
mov edi, dword [esp + 0x18]
and eax, 7
add eax, eax
mov ebx, edx
add ecx, eax
add ecx, ecx
shr ebx, cl
and ebx, 1
add ebx, edi
mov ecx, ebx
mov dword [esp + 0x1c], ebx
and ecx, 1
add ecx, eax
lea eax, [edi + 0x200]
add ecx, ecx
shr edx, cl
and edx, 3
mov dword [esp + 0x10], edx
cmp ebx, eax
jge 0x1000849a
movzx ecx, word [0x498d084]
lea eax, [ecx - 2]
cmp ebx, eax
jge 0x1000849a
mov eax, dword [0x498d06c]
imul ecx, esi
add ecx, ebx
lea eax, [eax + ecx*8]
movzx ecx, word [eax - 6]
lea esi, [eax + edx*2]
movzx edx, word [eax + 0xa]
mov edi, ecx
mov dword [esp + 0x38], esi
movzx esi, word [esi]
add esi, edi
movzx ebx, dx
mov dword [esp + 0x2c], edx
add esi, ebx
mov edx, dword [esp + 0x10]
add esi, esi
mov dword [esp + 0x14], eax
movzx eax, word [eax + edx*2 - 0x10]
sub esi, eax
mov eax, dword [esp + 0x14]
movzx eax, word [eax + edx*2 + 0x10]
mov edx, dword [esp + 0x2c]
sub esi, eax
sar esi, 2
mov eax, esi
cmp cx, dx
jae 0x100083bc
cmp esi, ebx
jl 0x100083b2
mov eax, ebx
cmp edi, eax
jg 0x100083d0
cmp esi, ebx
jge 0x100083c6
jmp 0x100083ce
cmp esi, edi
jl 0x100083c2
mov eax, edi
cmp ebx, eax
jle 0x100083ca
mov edi, ebx
jmp 0x100083d0
cmp esi, edi
jge 0x100083d0
mov edi, esi
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
lea eax, [eax + eax*2]
mov word [ecx + eax*2 + 2], di
lea eax, [ecx + eax*2]
mov edi, dword [esp + 0x14]
movzx edx, word [0x498d084]
mov dword [esp + 0x2c], eax
mov eax, edi
shl edx, 3
sub eax, edx
movzx ecx, word [edx + edi + 2]
movzx esi, word [eax + 2]
mov eax, dword [esp + 0x10]
mov ebx, esi
sub eax, edx
mov dword [esp + 0x28], ecx
movzx eax, word [edi + eax*2]
mov edi, dword [esp + 0x38]
movzx edi, word [edi]
add edi, ecx
add edi, ebx
add edi, edi
sub edi, eax
mov eax, dword [esp + 0x10]
add eax, edx
mov edx, dword [esp + 0x14]
movzx eax, word [edx + eax*2]
sub edi, eax
sar edi, 2
cmp si, cx
mov ecx, edi
jae 0x10008453
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x10008449
mov ecx, eax
cmp ebx, ecx
jg 0x1000846b
cmp edi, eax
jge 0x10008461
jmp 0x10008469
cmp edi, ebx
jl 0x10008459
mov ecx, ebx
mov eax, dword [esp + 0x28]
cmp eax, ecx
jle 0x10008465
mov ebx, eax
jmp 0x1000846b
cmp edi, ebx
jge 0x1000846b
mov ebx, edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov word [eax + 0x180002], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ebx, 2
add eax, 0x200
mov dword [esp + 0x1c], ebx
cmp ebx, eax
jl 0x10008344
add dword [esp + 0x24], 0x200
inc esi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], esi
cmp esi, dword [esp + 0x68]
jl 0x100082f0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x60]
mov ecx, 2
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], ecx
jmp 0x100084d8
mov edx, dword [esp + 0x18]
mov esi, ebx
mov dword [esp + 0x24], esi
cmp esi, eax
jge 0x1000871e
lea ebx, [esi*4 + 4]
mov dword [esp + 0x20], ebx
jmp 0x10008504
mov edx, dword [esp + 0x18]
movzx eax, word [0x498d086]
sub eax, 3
cmp esi, eax
jge 0x10008712
mov eax, dword [esp + 0x18]
inc edx
add eax, 0x1ff
mov dword [esp + 0x28], edx
cmp edx, eax
jge 0x100086f8
mov eax, esi
and eax, 7
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, ebx
and eax, 0x1c
mov dword [esp + 0x38], eax
movzx ecx, word [0x498d084]
lea eax, [ecx - 3]
cmp edx, eax
jge 0x100086f4
mov eax, dword [0x498d06c]
imul ecx, esi
add ecx, edx
lea ebx, [eax + ecx*8]
mov ecx, dword [esp + 0x2c]
lea eax, [edi + esi]
mov edi, dword [esp + 0x34]
shl eax, 9
mov esi, 2
sub eax, dword [esp + 0x18]
add eax, edx
and edx, 1
lea eax, [eax + eax*2]
add eax, eax
lea ecx, [edx + ecx]
add edi, eax
add ecx, ecx
add eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [0x498d090]
shr eax, cl
and eax, 3
mov dword [esp + 0x30], ecx
sub esi, eax
cmp esi, 1
jne 0x10008639
mov eax, dword [esp + 0x38]
mov esi, dword [0x498d090]
lea ecx, [eax + edx*2]
shr esi, cl
mov ecx, ebx
and esi, 3
mov edx, esi
neg edx
lea eax, [esi*2 + 4]
sub ecx, eax
movzx eax, word [ebx + edx*2 + 0xc]
movzx ecx, word [ecx]
add ecx, eax
movzx eax, word [edi + 8]
sub ecx, eax
movzx eax, word [edi - 4]
sub ecx, eax
movzx eax, word [ebx + 2]
sar ecx, 1
add ecx, eax
cmp ecx, 0xffff
jge 0x100085fb
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, ecx
jmp 0x10008600
mov eax, 0xffff
mov word [edi + edx*2 + 4], ax
mov eax, esi
movzx ecx, word [0x498d084]
shl ecx, 2
sub eax, ecx
add ecx, esi
movzx eax, word [ebx + eax*2]
movzx ecx, word [ebx + ecx*2]
add eax, ecx
movzx ecx, word [edi + 0xc02]
sub eax, ecx
movzx ecx, word [edi - 0xbfe]
sub eax, ecx
movzx ecx, word [ebx + 2]
sar eax, 1
jmp 0x10008690
movzx eax, word [0x498d084]
mov edx, esi
shl eax, 2
sub edx, eax
lea ecx, [eax + esi]
movzx eax, word [ebx + ecx*2 - 8]
movzx ecx, word [ebx + ecx*2 + 8]
add eax, ecx
movzx ecx, word [ebx + edx*2 - 8]
add eax, ecx
movzx ecx, word [ebx + edx*2 + 8]
add eax, ecx
movzx ecx, word [edi + 0xc08]
sub eax, ecx
movzx ecx, word [edi - 0xc04]
sub eax, ecx
movzx ecx, word [edi + 0xbfc]
sub eax, ecx
movzx ecx, word [edi - 0xbf8]
sub eax, ecx
movzx ecx, word [edi + 2]
inc eax
sar eax, 2
add eax, ecx
cmp eax, 0xffff
jge 0x100086a5
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
jmp 0x100086aa
mov ecx, 0xffff
push dword [esp + 0x14]
mov word [edi + esi*2], cx
mov edx, dword [0x498d090]
mov ecx, dword [esp + 0x34]
shr edx, cl
and edx, 3
push edi
mov ax, word [ebx + edx*2]
mov word [edi + edx*2], ax
call fcn.1000bd40
mov edx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x18]
inc edx
mov esi, dword [esp + 0x24]
add eax, 0x1ff
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
cmp edx, eax
jl 0x10008540
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
inc esi
add ebx, 4
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
cmp esi, eax
jl 0x10008500
jmp 0x10008716
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
add edi, 0x200
dec ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], ecx
jne 0x100084d4
push 0x80000
push 0
push dword [esp + 0x4c]
call fcn.10003da1
mov esi, dword [esp + 0x64]
add esp, 0xc
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x4c]
jge 0x10008a54
mov ebx, esi
sub ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], ebx
movzx eax, word [0x498d086]
sub eax, 4
cmp esi, eax
jge 0x10008a54
mov edi, dword [esp + 0x18]
lea ecx, [edi + 2]
lea eax, [edi + 0x1fe]
mov dword [esp + 0x20], ecx
cmp ecx, eax
jge 0x10008a40
mov edx, ecx
sub edx, edi
mov dword [esp + 0x1c], edx
jmp 0x100087a0
movzx eax, word [0x498d084]
sub eax, 4
cmp ecx, eax
jge 0x10008a3c
mov ecx, dword [esp + 0x48]
mov eax, ebx
shl eax, 9
add eax, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
lea edx, [eax - 1]
lea edx, [edx + edx*2]
lea edx, [ecx + edx*2]
mov dword [esp + 0x10], edx
jmp 0x100087e0
movzx eax, word [edx + 6]
movzx edi, word [edx + 8]
movzx esi, word [edx + 0xa]
movsx ebx, ax
movsx eax, word [edx]
mov edx, ebx
sub edx, eax
mov ecx, edx
sar ecx, 0x1f
mov eax, ecx
xor eax, edx
movsx edx, si
sub eax, ecx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x14]
movsx esi, di
mov edi, dword [esp + 0x10]
mov dword [esp + ecx + 0x74], eax
mov ecx, esi
mov eax, dword [esp + 0x10]
movsx eax, word [eax + 4]
sub edx, eax
movsx eax, word [edi + 2]
sub ecx, eax
imul edx, edx
mov eax, dword [esp + 0x14]
imul ecx, ecx
add ecx, edx
mov edx, ebx
mov dword [esp + eax + 0x94], ecx
movsx eax, word [edi + 0xc]
sub edx, eax
mov ecx, edx
sar ecx, 0x1f
mov eax, ecx
xor eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx + 0x78], eax
mov ecx, esi
movsx eax, word [edi + 0x10]
mov edi, dword [esp + 0x2c]
mov edx, edi
sub edx, eax
mov eax, dword [esp + 0x10]
imul edx, edx
movsx eax, word [eax + 0xe]
sub ecx, eax
mov eax, dword [esp + 0x14]
imul ecx, ecx
add ecx, edx
mov edx, ebx
mov dword [esp + eax + 0x98], ecx
mov eax, dword [esp + 0x10]
movsx eax, word [eax - 0xbfa]
sub edx, eax
mov ecx, edx
sar ecx, 0x1f
mov eax, ecx
xor eax, edx
mov edx, edi
sub eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx + 0x7c], eax
mov ecx, dword [esp + 0x10]
movsx eax, word [ecx - 0xbf6]
sub edx, eax
movsx eax, word [ecx - 0xbf8]
mov ecx, esi
imul edx, edx
sub ecx, eax
mov eax, dword [esp + 0x14]
imul ecx, ecx
add ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + eax + 0x9c], ecx
movsx eax, word [edx + 0xc06]
sub ebx, eax
mov ecx, ebx
sar ecx, 0x1f
mov eax, ecx
xor eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx + 0x80], eax
movsx eax, word [edx + 0xc0a]
sub edi, eax
movsx eax, word [edx + 0xc08]
sub esi, eax
imul edi, edi
imul esi, esi
add edx, 0x180000
mov dword [esp + 0x10], edx
add esi, edi
mov dword [esp + ecx + 0xa0], esi
add ecx, 0x10
mov dword [esp + 0x14], ecx
cmp ecx, 0x20
jl 0x100087e0
mov esi, dword [esp + 0x74]
mov ebx, esi
mov edx, dword [esp + 0x78]
cmp esi, edx
ja 0x1000893f
mov ebx, edx
mov eax, dword [esp + 0x8c]
mov edi, eax
mov ecx, dword [esp + 0x90]
cmp eax, ecx
ja 0x10008955
mov edi, ecx
cmp ebx, edi
jae 0x10008961
cmp esi, edx
ja 0x10008969
mov esi, edx
jmp 0x10008969
mov esi, eax
cmp eax, ecx
ja 0x10008969
mov esi, ecx
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x24], edx
cmp edx, edi
ja 0x10008983
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0xac]
mov ebx, eax
mov ecx, dword [esp + 0xb0]
cmp eax, ecx
ja 0x10008999
mov ebx, ecx
cmp dword [esp + 0x24], ebx
jae 0x100089a7
cmp edx, edi
ja 0x100089af
mov edx, edi
jmp 0x100089af
mov edx, eax
cmp eax, ecx
ja 0x100089af
mov edx, ecx
mov ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x38]
xor eax, eax
lea esp, [esp]
cmp dword [esp + eax + 0x74], esi
ja 0x100089d1
cmp dword [esp + eax + 0x94], edx
ja 0x100089d1
inc byte [ecx]
cmp dword [esp + eax + 0x78], esi
ja 0x100089e2
cmp dword [esp + eax + 0x98], edx
ja 0x100089e2
inc byte [ecx]
cmp dword [esp + eax + 0x7c], esi
ja 0x100089f3
cmp dword [esp + eax + 0x9c], edx
ja 0x100089f3
inc byte [ecx]
cmp dword [esp + eax + 0x80], esi
ja 0x10008a07
cmp dword [esp + eax + 0xa0], edx
ja 0x10008a07
inc byte [ecx]
add eax, 0x10
add ecx, 0x40000
cmp eax, 0x20
jl 0x100089c0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc ecx
mov eax, dword [esp + 0x18]
inc edx
mov ebx, dword [esp + 0x30]
add eax, 0x1fe
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
cmp ecx, eax
jl 0x100087a0
mov esi, dword [esp + 0x28]
inc esi
inc ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], ebx
cmp esi, dword [esp + 0x4c]
jl 0x10008762
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x54]
jge 0x10008cb7
mov esi, edi
sub esi, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
movzx eax, word [0x498d086]
sub eax, 5
cmp edi, eax
jge 0x10008cb7
mov edx, dword [esp + 0x18]
lea ebx, [edx + 3]
lea eax, [edx + 0x1fd]
mov dword [esp + 0x1c], ebx
cmp ebx, eax
jge 0x10008ca3
mov ecx, ebx
sub ecx, edx
mov dword [esp + 0x28], ecx
jmp 0x10008ab0
movzx eax, word [0x498d084]
mov dword [esp + 0x2c], eax
add eax, 0xfffffffb
cmp ebx, eax
jge 0x10008ca3
lea edx, [esi - 1]
xor ebx, ebx
lea eax, [esi + 1]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x20], eax
lea edi, [esp + 0x6c]
lea ebx, [ebx]
mov esi, edx
mov dword [edi], 0
cmp esi, eax
jg 0x10008b50
lea eax, [ecx + 1]
lea edx, [ecx - 1]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov edi, edi
cmp edx, eax
jg 0x10008b3f
mov eax, dword [edi]
lea ecx, [ebx + esi]
shl ecx, 9
add ecx, edx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x30]
add ecx, dword [esp + 0x44]
inc edx
nop
movsx eax, byte [ecx]
lea ecx, [ecx + 1]
add dword [esp + 0x24], eax
dec edx
jne 0x10008b20
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov dword [edi], eax
mov eax, dword [esp + 0x38]
inc esi
cmp esi, ecx
jle 0x10008b00
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x5c]
add ebx, 0x200
add edi, 4
cmp ebx, 0x400
jl 0x10008ae0
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
cmp edx, esi
je 0x10008bec
xor eax, eax
cmp esi, edx
mov edx, dword [esp + 0x2c]
setg al
imul edx, edi
shl eax, 9
add eax, dword [esp + 0x10]
shl eax, 9
add eax, ecx
add edx, ebx
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x34]
movzx ecx, word [eax + esi*2]
mov eax, dword [0x498d06c]
mov word [eax + edx*8], cx
movzx edx, word [0x498d084]
mov eax, dword [esp + 0x34]
imul edx, edi
movzx ecx, word [eax + esi*2 + 2]
mov eax, dword [0x498d06c]
add edx, ebx
mov word [eax + edx*8 + 2], cx
movzx edx, word [0x498d084]
mov eax, dword [esp + 0x34]
imul edx, edi
movzx ecx, word [eax + esi*2 + 4]
mov eax, dword [0x498d06c]
add edx, ebx
mov word [eax + edx*8 + 4], cx
jmp 0x10008c80
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 9
add eax, ecx
lea esi, [eax + eax*2]
lea eax, [edx + 0x200]
mov edx, dword [esp + 0x34]
shl eax, 9
add eax, ecx
lea eax, [eax + eax*2]
movzx ecx, word [edx + eax*2]
movzx eax, word [edx + esi*2]
mov edx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [0x498d06c]
imul edx, edi
sar ecx, 1
add edx, ebx
mov word [eax + edx*8], cx
mov eax, dword [esp + 0x34]
movzx ecx, word [0x498d084]
imul ecx, edi
movzx edx, word [eax + esi*2 + 0x180002]
movzx eax, word [eax + esi*2 + 2]
add edx, eax
mov eax, dword [0x498d06c]
add ecx, ebx
sar edx, 1
mov word [eax + ecx*8 + 2], dx
mov eax, dword [esp + 0x34]
movzx ecx, word [0x498d084]
imul ecx, edi
movzx edx, word [eax + esi*2 + 0x180004]
movzx eax, word [eax + esi*2 + 4]
add edx, eax
mov eax, dword [0x498d06c]
sar edx, 1
add ecx, ebx
mov word [eax + ecx*8 + 4], dx
mov ecx, dword [esp + 0x28]
inc ebx
mov eax, dword [esp + 0x18]
inc ecx
mov esi, dword [esp + 0x10]
add eax, 0x1fd
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ecx
cmp ebx, eax
jl 0x10008ab0
inc edi
inc esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
cmp edi, dword [esp + 0x54]
jl 0x10008a70
mov edx, dword [esp + 0x18]
movzx eax, word [0x498d084]
add edx, 0x1fa
mov ecx, dword [esp + 0x3c]
sub eax, 5
cmp edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x40]
lea edi, [ecx + 0x200]
jl 0x100082d0
movzx eax, word [0x498d086]
add ecx, 0x1fa
sub eax, 5
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jl 0x10008270
mov ebx, dword [esp + 0x34]
push ebx
call fcn.10037780
mov ecx, dword [esp + 0xb8]
add esp, 4
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret