Function at 0x1002ebe0
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x10080800]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x10081da8]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081da4], 0xa
setl al
or al, cl
push eax
mov ecx, esp
test al, al
je 0x1002ec10
cmp dword [ebp + 8], 0
je 0x1002f812
cmp dword [ebp + 0xc], 0
je 0x1002f812
mov dword [ebp - 0x20], ecx
mov dword [ecx], 0x40
jmp 0x1002ec6d
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + ecx + 0x1c]
add eax, edi
mov ecx, dword [edi + ecx + 0x24]
add ecx, edi
movzx ecx, word [ecx + edx*2]
add edi, dword [eax + ecx*4]
mov esi, dword [ebp - 0x20]
push esi
push 0x40
push dword [ebp + 0x10]
push dword [ebp + 8]
call edi
mov dword [esi], 0x40
cmp dword [0x10081dd4], 0xa
jl 0x1002ec8a
mov eax, dword [0x10081dd8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f240
mov eax, dword [0x10084718]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1002ecb0
cmp dword [0x10081dbc], 0xa
jge 0x1002ee54
jmp 0x1002ee69
mov eax, dword [0x10081e40]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10081e3c], 0xa
setl ch
or ch, al
mov eax, dword [0x10081e44]
mov edx, dword [0x10081e48]
lea ebx, [eax + 1]
imul ebx, eax
and ebx, 1
sete al
mov dword [ebp - 0x14], edx
cmp edx, 0xa
setl cl
or cl, al
mov eax, dword [0x10081f84]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [0x10081f88], 0xa
setl al
mov esi, dword [0x10081e50]
lea edx, [esi + 1]
imul edx, esi
or al, ah
mov byte [ebp - 0x1c], al
test dl, 1
sete dl
cmp dword [0x10081e4c], 0xa
setl al
or al, dl
mov byte [ebp - 0x18], al
cmp ch, 1
jne 0x1002ed49
test cl, cl
jne 0x1002ed70
mov edx, dword fs:[0x30]
mov edx, dword fs:[0x30]
jmp 0x1002ed70
mov edi, ebx
test cl, cl
jne 0x1002ee20
mov eax, dword fs:[0x30]
mov edi, 1
jmp 0x1002ee20
mov esi, dword fs:[0x30]
test cl, cl
jne 0x1002ed90
mov edx, dword fs:[0x30]
jmp 0x1002ed70
mov edi, ebx
test ch, ch
je 0x1002ee20
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0xc]
movzx eax, byte [ebp - 0x1c]
movzx ecx, byte [ebp - 0x18]
nop dword [eax + eax]
test al, al
je 0x1002edb0
movzx esi, word [edx + 0x2c]
cmp esi, 2
jb 0x1002ee0b
mov dword [ebp - 0x14], edx
mov edi, dword [edx + 0x30]
shr esi, 1
add esi, esi
mov ebx, 0xea96ee42
xor ecx, ecx
nop
movzx edx, byte [edi + ecx]
mov ah, dl
add ah, 0xbf
mov al, dl
or al, 0x20
cmp ah, 0x1a
movzx eax, al
cmovae eax, edx
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
add ecx, 2
cmp esi, ecx
jne 0x1002edd0
cmp ebx, 0xbacb95f4
movzx eax, byte [ebp - 0x1c]
movzx ecx, byte [ebp - 0x18]
mov edx, dword [ebp - 0x14]
je 0x1002ee40
test cl, cl
je 0x1002ee15
mov edx, dword [edx]
test cl, cl
jne 0x1002edb0
mov edx, dword [edx]
jmp 0x1002ee0f
cmp dword [ebp - 0x14], 0xa
jl 0x1002f060
test edi, edi
jne 0x1002f06e
jmp 0x1002f060
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x14], eax
mov dword [0x10084718], eax
cmp dword [0x10081dbc], 0xa
jl 0x1002ee69
mov ecx, dword [0x10081dc0]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x1002f250
cmp dword [0x10081fa8], 0xa
jl 0x1002ee87
mov ecx, dword [0x10081fa4]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x1002f260
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
mov dword [ebp - 0x18], ecx
mov esi, dword [eax + ecx + 0x20]
add esi, eax
inc eax
mov dword [ebp - 0x1c], eax
xor ecx, ecx
jmp 0x1002eec0
mov edi, 0xeb96efd5
lea ecx, [edx + 1]
cmp edi, 0x701a27c3
je 0x1002ef10
mov edx, ecx
mov ecx, dword [esi + ecx*4]
mov eax, dword [ebp - 0x14]
movzx ebx, byte [eax + ecx]
test bl, bl
je 0x1002eeb0
add ecx, dword [ebp - 0x1c]
mov edi, 0xeb96efd5
nop dword [eax + eax]
mov bh, bl
add bh, 0xbf
movzx eax, bl
or bl, 0x20
cmp bh, 0x1a
movzx ebx, bl
cmovae ebx, eax
movsx eax, bl
xor eax, edi
imul edi, eax, 0x1000193
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x1002eee0
jmp 0x1002eeb5
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + ecx + 0x1c]
add eax, esi
mov ecx, dword [esi + ecx + 0x24]
add ecx, esi
movzx ecx, word [ecx + edx*2]
add esi, dword [eax + ecx*4]
push dword [ebp - 0x20]
push 0x40
push dword [ebp + 0x10]
push dword [ebp + 8]
call esi
mov esi, dword [0x10081da8]
mov edx, dword [0x10081da4]
lea ecx, [esi + 1]
imul ecx, esi
and ecx, 1
cmp edx, 0xa
jl 0x1002f292
test ecx, ecx
je 0x1002f292
mov eax, dword [ebp - 0x20]
mov dword [eax], 0x40
cmp dword [0x10081dd4], 0xa
jl 0x1002ef82
mov eax, dword [0x10081dd8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f270
mov eax, dword [0x10084718]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1002efa0
cmp dword [0x10081dbc], 0xa
jge 0x1002f164
jmp 0x1002f179
mov eax, dword [0x10081e40]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10081e3c], 0xa
setl ch
or ch, al
mov eax, dword [0x10081e44]
mov edx, dword [0x10081e48]
lea ebx, [eax + 1]
imul ebx, eax
and ebx, 1
sete al
mov dword [ebp - 0x14], edx
cmp edx, 0xa
setl cl
or cl, al
mov eax, dword [0x10081f84]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete ah
cmp dword [0x10081f88], 0xa
setl al
mov esi, dword [0x10081e50]
lea edx, [esi + 1]
imul edx, esi
or al, ah
mov byte [ebp - 0x1c], al
test dl, 1
sete dl
cmp dword [0x10081e4c], 0xa
setl al
or al, dl
mov byte [ebp - 0x18], al
cmp ch, 1
jne 0x1002f039
test cl, cl
jne 0x1002f080
mov edx, dword fs:[0x30]
mov edx, dword fs:[0x30]
jmp 0x1002f080
mov edi, ebx
test cl, cl
jne 0x1002f130
mov eax, dword fs:[0x30]
mov edi, 1
jmp 0x1002f130
mov eax, dword fs:[0x30]
test cl, cl
jne 0x1002ed70
mov eax, dword fs:[0x30]
jmp 0x1002f060
mov esi, dword fs:[0x30]
test cl, cl
jne 0x1002f0a0
mov edx, dword fs:[0x30]
jmp 0x1002f080
mov edi, ebx
test ch, ch
je 0x1002f130
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0xc]
movzx eax, byte [ebp - 0x1c]
movzx ecx, byte [ebp - 0x18]
nop dword [eax + eax]
test al, al
je 0x1002f0c0
movzx esi, word [edx + 0x2c]
cmp esi, 2
jb 0x1002f11b
mov dword [ebp - 0x14], edx
mov edi, dword [edx + 0x30]
shr esi, 1
add esi, esi
mov ebx, 0xea96ee42
xor ecx, ecx
nop
movzx edx, byte [edi + ecx]
mov ah, dl
add ah, 0xbf
mov al, dl
or al, 0x20
cmp ah, 0x1a
movzx eax, al
cmovae eax, edx
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
add ecx, 2
cmp esi, ecx
jne 0x1002f0e0
cmp ebx, 0xbacb95f4
movzx eax, byte [ebp - 0x1c]
movzx ecx, byte [ebp - 0x18]
mov edx, dword [ebp - 0x14]
je 0x1002f150
test cl, cl
je 0x1002f125
mov edx, dword [edx]
test cl, cl
jne 0x1002f0c0
mov edx, dword [edx]
jmp 0x1002f11f
cmp dword [ebp - 0x14], 0xa
jl 0x1002f220
test edi, edi
jne 0x1002f22e
jmp 0x1002f220
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x14], eax
mov dword [0x10084718], eax
cmp dword [0x10081dbc], 0xa
jl 0x1002f179
mov ecx, dword [0x10081dc0]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x1002f280
cmp dword [0x10081fa8], 0xa
jl 0x1002f197
mov ecx, dword [0x10081fa4]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x1002f290
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
mov dword [ebp - 0x18], ecx
mov esi, dword [eax + ecx + 0x20]
add esi, eax
inc eax
mov dword [ebp - 0x1c], eax
xor ecx, ecx
jmp 0x1002f1d4
mov edi, 0xeb96efd5
lea ecx, [edx + 1]
cmp edi, 0x701a27c3
je 0x1002ec40
mov edx, ecx
mov ecx, dword [esi + ecx*4]
mov eax, dword [ebp - 0x14]
movzx ebx, byte [eax + ecx]
test bl, bl
je 0x1002f1c0
add ecx, dword [ebp - 0x1c]
mov edi, 0xeb96efd5
nop dword [eax]
mov bh, bl
add bh, 0xbf
movzx eax, bl
or bl, 0x20
cmp bh, 0x1a
movzx ebx, bl
cmovae ebx, eax
movsx eax, bl
xor eax, edi
imul edi, eax, 0x1000193
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x1002f1f0
jmp 0x1002f1c5
mov eax, dword fs:[0x30]
test cl, cl
jne 0x1002f080
mov eax, dword fs:[0x30]
jmp 0x1002f220
jmp 0x1002f240
jmp 0x1002f250
jmp 0x1002f260
jmp 0x1002f270
jmp 0x1002f280
jmp 0x1002f290
test eax, eax
je 0x1002f802
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1004f970
add esp, 0xc
cmp dword [0x10081dec], 0xa
jl 0x1002f2c8
mov eax, dword [0x10081df0]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f790
mov eax, dword [0x1008471c]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002f401
cmp dword [0x10081fc8], 0xa
jl 0x1002f2f5
mov eax, dword [0x10081fc4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f7f0
mov eax, dword [0x10081e44]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e48], 0xa
setl al
or al, cl
cmp al, 1
je 0x1002f322
mov ecx, dword fs:[0x30]
jmp 0x1002f3ea
mov ecx, dword fs:[0x30]
test al, al
je 0x1002f3ea
mov eax, dword [ecx + 0xc]
mov ecx, dword [0x10081f84]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete dl
cmp dword [0x10081f88], 0xa
mov ecx, dword [eax + 0xc]
setl bl
or bl, dl
mov eax, dword [0x10081e50]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
cmp dword [0x10081e4c], 0xa
setl dl
or dl, al
mov byte [ebp - 0x1c], bl
mov byte [ebp - 0x18], dl
nop dword [eax + eax]
test bl, bl
je 0x1002f380
movzx esi, word [ecx + 0x2c]
cmp esi, 2
jb 0x1002f3dc
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx + 0x30]
shr esi, 1
add esi, esi
mov ebx, 0xe0768ad9
xor edx, edx
nop
movzx eax, byte [edi + edx]
mov ch, al
add ch, 0xbf
mov cl, al
or cl, 0x20
cmp ch, 0x1a
movzx ecx, cl
cmovae ecx, eax
movsx eax, cl
xor eax, ebx
imul ebx, eax, 0x1000193
add edx, 2
cmp esi, edx
jne 0x1002f3a0
cmp ebx, 0x43395c47
mov ecx, dword [ebp - 0x14]
movzx ebx, byte [ebp - 0x1c]
movzx edx, byte [ebp - 0x18]
je 0x1002f3f6
test dl, dl
je 0x1002f3e6
mov ecx, dword [ecx]
test dl, dl
jne 0x1002f380
mov ecx, dword [ecx]
jmp 0x1002f3e0
mov ecx, dword fs:[0x30]
jmp 0x1002f322
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x14], eax
mov dword [0x1008471c], eax
mov eax, dword [0x10081ddc]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10081de0], 0xa
setl cl
or cl, al
mov edx, dword [0x10081fa4]
mov esi, dword [0x10081fa8]
jne 0x1002f442
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp esi, 0xa
jl 0x1002f442
test eax, eax
jne 0x1002f7a0
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp esi, 0xa
jl 0x1002f458
test eax, eax
jne 0x1002f7b0
test cl, cl
je 0x1002f435
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
mov dword [ebp - 0x18], eax
mov esi, dword [ecx + eax + 0x20]
add esi, ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x1c], eax
xor edx, edx
jmp 0x1002f481
inc edx
mov ecx, dword [esi + edx*4]
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
test al, al
je 0x1002f480
add ecx, dword [ebp - 0x1c]
mov edi, 0xdf768946
nop word [eax + eax]
mov ah, al
add ah, 0xbf
movzx ebx, al
or al, 0x20
cmp ah, 0x1a
movzx eax, al
cmovae eax, ebx
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1002f4a0
cmp edi, 0x98587c0c
jne 0x1002f480
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + ecx + 0x1c]
add eax, esi
mov ecx, dword [esi + ecx + 0x24]
add ecx, esi
movzx ecx, word [ecx + edx*2]
add esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push eax
push dword [eax]
push dword [ebp + 0x10]
push dword [ebp + 8]
call esi
mov eax, dword [0x10081da8]
mov edx, dword [0x10081da4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
cmp edx, 0xa
jl 0x1002f802
test ecx, ecx
je 0x1002f802
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1004f970
add esp, 0xc
cmp dword [0x10081dec], 0xa
jl 0x1002f548
mov eax, dword [0x10081df0]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f7e0
mov eax, dword [0x1008471c]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002f681
cmp dword [0x10081fc8], 0xa
jl 0x1002f575
mov eax, dword [0x10081fc4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1002f800
mov eax, dword [0x10081e44]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e48], 0xa
setl al
or al, cl
cmp al, 1
je 0x1002f5a2
mov ecx, dword fs:[0x30]
jmp 0x1002f66a
mov ecx, dword fs:[0x30]
test al, al
je 0x1002f66a
mov eax, dword [ecx + 0xc]
mov ecx, dword [0x10081f84]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete dl
cmp dword [0x10081f88], 0xa
mov ecx, dword [eax + 0xc]
setl bl
or bl, dl
mov eax, dword [0x10081e50]
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
cmp dword [0x10081e4c], 0xa
setl dl
or dl, al
mov byte [ebp - 0x1c], bl
mov byte [ebp - 0x18], dl
nop dword [eax + eax]
test bl, bl
je 0x1002f600
movzx esi, word [ecx + 0x2c]
cmp esi, 2
jb 0x1002f65c
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx + 0x30]
shr esi, 1
add esi, esi
mov ebx, 0xe0768ad9
xor edx, edx
nop
movzx eax, byte [edi + edx]
mov ch, al
add ch, 0xbf
mov cl, al
or cl, 0x20
cmp ch, 0x1a
movzx ecx, cl
cmovae ecx, eax
movsx eax, cl
xor eax, ebx
imul ebx, eax, 0x1000193
add edx, 2
cmp esi, edx
jne 0x1002f620
cmp ebx, 0x43395c47
mov ecx, dword [ebp - 0x14]
movzx ebx, byte [ebp - 0x1c]
movzx edx, byte [ebp - 0x18]
je 0x1002f676
test dl, dl
je 0x1002f666
mov ecx, dword [ecx]
test dl, dl
jne 0x1002f600
mov ecx, dword [ecx]
jmp 0x1002f660
mov ecx, dword fs:[0x30]
jmp 0x1002f5a2
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x14], eax
mov dword [0x1008471c], eax
mov eax, dword [0x10081ddc]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10081de0], 0xa
setl cl
or cl, al
mov edx, dword [0x10081fa4]
mov esi, dword [0x10081fa8]
jne 0x1002f6c2
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp esi, 0xa
jl 0x1002f6c2
test eax, eax
jne 0x1002f7c0
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp esi, 0xa
jl 0x1002f6d8
test eax, eax
jne 0x1002f7d0
test cl, cl
je 0x1002f6b5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
mov dword [ebp - 0x18], eax
mov esi, dword [ecx + eax + 0x20]
add esi, ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x1c], eax
xor edx, edx
jmp 0x1002f701
inc edx
mov ecx, dword [esi + edx*4]
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
test al, al
je 0x1002f700
add ecx, dword [ebp - 0x1c]
mov edi, 0xdf768946
nop word [eax + eax]
mov ah, al
add ah, 0xbf
movzx ebx, al
or al, 0x20
cmp ah, 0x1a
movzx eax, al
cmovae eax, ebx
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1002f720
cmp edi, 0x98587c0c
jne 0x1002f700
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + ecx + 0x1c]
add eax, ebx
mov ecx, dword [ebx + ecx + 0x24]
add ecx, ebx
movzx ecx, word [ecx + edx*2]
add ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x20]
push eax
push dword [eax]
mov esi, dword [ebp + 0x10]
push esi
mov edi, dword [ebp + 8]
push edi
call ebx
push esi
push dword [ebp + 0xc]
push edi
jmp 0x1002f2a3
jmp 0x1002f790
jmp 0x1002f7a0
jmp 0x1002f7b0
jmp 0x1002f7c0
jmp 0x1002f7d0
jmp 0x1002f7e0
jmp 0x1002f7f0
jmp 0x1002f800
cmp edx, 0xa
jl 0x1002f812
test ecx, ecx
je 0x1002f812
nop dword [eax + eax]
jmp 0x1002f810
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10035778
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret