Function at 0x100042e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
push ebx
push esi
push edi
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x80], ecx
mov byte [ebp - 3], 0x65
movzx eax, word [0x1001000c]
mov byte [ebp - 1], al
mov eax, dword [0x100100ac]
mov byte [ebp - 5], al
movsx eax, word [0x100100c0]
mov dword [ebp - 0x44], eax
movsx eax, byte [0x10010002]
mov dword [ebp - 0x6c], eax
movzx eax, byte [0x1001000e]
mov dword [ebp - 0x54], eax
movzx eax, word [0x100100c4]
mov byte [ebp - 6], al
movzx eax, word [0x1001008c]
mov dword [ebp - 0x60], eax
mov eax, dword [0x10010040]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
movzx eax, word [0x1001000c]
mov word [ebp - 0x14], ax
mov eax, dword [0x10010070]
mov dword [ebp - 0x64], eax
movzx eax, word [0x1001008c]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov byte [ebp - 2], 0x3c
mov dword [ebp - 0x34], 0x9ecf
mov ecx, dword [0x100100a0]
mov eax, dword [0x100100a4]
movsx eax, byte [0x10010012]
mov word [ebp - 0xc], cx
mov ecx, dword [0x10010018]
movzx ebx, ax
mov eax, dword [0x1001001c]
mov eax, dword [0x10010048]
mov byte [ebp - 4], cl
mov dword [ebp - 0x7c], eax
movsx eax, word [0x100100a8]
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
movzx eax, word [0x10010010]
mov byte [ebp - 1], al
mov al, byte [str.Ep_M]
mov byte [ebp - 1], al
mov al, byte [0x10010002]
mov eax, 0x1a05
mov dword [ebp - 0x10], ebx
mov word [ebp - 0xc], ax
movsx eax, word [0x10010068]
mov dword [ebp - 0x4c], eax
mov eax, 0xc09d
mov dword [ebp - 0x4c], 0x442
mov word [ebp - 0xc], ax
mov dword [ebp - 0x4c], 0xea8e94b9
mov eax, dword [0x10010018]
mov ecx, dword [0x1001001c]
mov ax, word [0x100100a8]
mov eax, dword [0x100100bc]
mov word [ebp - 0xc], ax
movzx eax, word [section..data]
mov dword [ebp - 0x4c], 0x3d5acd1a
mov dword [ebp - 0x4c], 0xc00e6547
mov word [ebp - 0xc], ax
mov al, byte [ebp - 2]
movzx ebx, bx
sub esp, 0x28
sub al, bl
mov dword [ebp - 0x68], 0x91
mov dword [ebp - 0x5c], 0x190b
mov byte [ebp - 2], al
call fcn.100012f0
mov byte [ebp - 1], al
add esp, 0x28
cmp byte [ebp - 1], 0
je 0x1000446a
push ecx
call fcn.100014a0
movzx eax, al
add esp, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
jmp 0x10004485
cmp word [0x100100b0], 0
je 0x10004485
movsx ecx, byte [ebp - 4]
mov eax, dword [ebp - 0x64]
add eax, 0x251620d1
add eax, ecx
mov dword [ebp - 0x64], eax
mov eax, 0x4275
mov word [ebp - 0xc], ax
mov ecx, dword [ebp - 0x44]
movzx eax, byte [0x1001000e]
add ecx, eax
mov dword [ebp - 0x44], ecx
mov eax, dword [0x10010018]
mov ecx, dword [0x1001001c]
xor eax, 0x65e93ce6
mov dword [ebp - 0x30], eax
xor ecx, 0
mov dword [ebp - 0x2c], ecx
mov ax, word [0x100100c0]
mov ax, word [0x100100c0]
mov ax, word [0x100100c0]
cmp dword [ebp - 0x34], 0
je 0x1000451d
movsx ecx, word [0x1001000c]
xor edx, edx
mov eax, dword [0x10010004]
cmp ecx, eax
mov ax, word [0x1001000c]
setle dl
xor ecx, ecx
cmp ax, 0x3c
setle cl
cmp edx, ecx
je 0x100045c7
mov ecx, dword [0x100100a0]
mov eax, dword [0x100100a4]
mov edx, dword [0x10010070]
mov eax, dword [0x10010070]
sub edx, ecx
sub edx, eax
mov dword [0x10010070], edx
jmp 0x100045c7
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
or ecx, eax
je 0x10004552
mov cx, word [ebp - 0xc]
xor eax, eax
cmp word [0x100100b8], ax
sete al
movzx eax, ax
sub cx, ax
lea eax, [ebx - 0x749]
mov word [0x1001006c], cx
mov word [0x100100c0], ax
jmp 0x100045c7
movsx eax, byte [0x10010002]
not eax
test eax, eax
je 0x10004585
mov ax, word [ebp - 0xc]
mov cx, word [ebp - 0xc]
sub word [0x1001006c], ax
xor cl, 0xb1
mov eax, dword [ebp - 0x7c]
movzx eax, al
movzx ecx, cl
imul ecx, eax
mov byte [0x10010003], cl
jmp 0x100045c7
cmp dword [0x10010044], 0x1b9a
je 0x1000459a
mov ecx, 1
xor edx, edx
jmp 0x100045a8
xorps xmm0, xmm0
movlpd qword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
cmp eax, edx
ja 0x100045c7
jb 0x100045b8
cmp esi, ecx
ja 0x100045c7
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
sub cl, 0x3c
mov byte [0x10010012], cl
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp + 8]
test eax, eax
je 0x100056dd
mov dword [ebp - 0x18], edi
dec eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x58], eax
movzx eax, word [0x1018d4ac]
mov word [ebp - 0x14], ax
movzx eax, word [ebp - 0x14]
cmp ax, word [section..data]
jne 0x10004607
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x1c], 0
jmp 0x1000461b
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
mov ecx, dword [0x10010018]
mov eax, dword [0x1001001c]
or ecx, eax
jne 0x10004631
lea ebx, [ecx + 1]
xor edi, edi
jmp 0x1000463f
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov edi, dword [ebp - 0x74]
mov ebx, dword [ebp - 0x78]
movsx edx, byte [ebp - 4]
xor ecx, ecx
mov al, byte [0x10010015]
sub edx, 0x73252f0a
mov esi, dword [ebp - 0x54]
test al, al
push edi
sete cl
xor ecx, edx
xor esi, ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
push ebx
push eax
push ecx
call fcn.1000e790
add eax, dword [ebp - 0x44]
not eax
adc edx, dword [ebp - 0x1c]
sub eax, esi
not edx
sbb edx, 0
or eax, edx
jne 0x10004685
mov eax, 1
jmp 0x10004687
xor eax, eax
cmp word [ebp - 0x5c], 0
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x44], eax
movsx eax, word [0x1001000c]
cdq
mov dword [0x10010078], eax
mov eax, esi
mov dword [0x1001007c], edx
jne 0x100046ac
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x18]
mov ecx, 0xfff
mov byte [ebp - 4], al
mov ax, word [edi]
and ax, cx
movzx edx, ax
mov eax, dword [ebp - 0x6c]
mov ebx, edx
cmp word [0x100100b0], 0
movsx ecx, byte [0x10010058]
sete al
add ebx, dword [ebp - 0x80]
movsx eax, al
imul eax, ecx
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 2], al
movzx eax, word [edi]
shr ax, 0xc
cmp ax, 3
jne 0x100047c9
movsx eax, word [0x100100b4]
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
cdq
cmp ecx, edx
jb 0x1000475b
ja 0x1000470f
cmp esi, eax
jbe 0x1000475b
mov ax, word [0x10010068]
sub esp, 8
mov al, byte [ebp - 2]
call fcn.10001730
add esp, 8
mov word [0x10010010], ax
cmp word [0x10010010], 0
jle 0x100047bf
movzx eax, byte [0x1001000f]
cmp dword [ebp - 0x60], eax
jne 0x100047bf
mov eax, dword [ebp - 0x34]
sub eax, 0x4b55
mov word [section..data], ax
mov eax, dword [ebp + 0xc]
add dword [ebx], eax
jmp 0x1000538a
cmp byte [0x10010013], 0
jne 0x1000476d
mov eax, 1
xor ecx, ecx
jmp 0x1000477b
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
add eax, dword [str.Ep_M]
adc ecx, dword [0x10010064]
or eax, ecx
je 0x100047bf
movsx eax, word [0x10010010]
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cdq
mov edi, eax
mov eax, dword [ebp - 0x40]
sub edi, ecx
mov ecx, dword [ebp - 0x3c]
sbb edx, esi
add eax, edi
mov edi, dword [ebp - 0x18]
adc ecx, edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x54]
sub eax, 0x7395
mov dword [0x10010058], eax
mov eax, dword [ebp + 0xc]
add dword [ebx], eax
jmp 0x1000538a
cmp ax, 1
jne 0x10004953
movzx eax, word [0x10010078]
sub esp, 0x28
mov word [0x100100b0], ax
mov ax, word [0x10010068]
mov eax, dword [ebp - 0x54]
call fcn.10001d00
add esp, 0x28
mov dword [0x10010098], eax
cmp word [ebp - 0xc], 0
je 0x1000480a
cmp dword [ebp - 0x44], 0
jne 0x1000480a
xor esi, esi
jmp 0x1000480f
mov esi, 1
mov ecx, dword [0x10010030]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
cmp eax, ecx
jne 0x10004823
test edx, edx
je 0x10004828
mov edx, 1
movzx eax, byte [0x1001000e]
xor ecx, ecx
cmp esi, eax
setne cl
cmp ecx, edx
jae 0x10004890
sub esp, 0x10
call fcn.10001880
mov word [ebp - 0xc], ax
add esp, 0x10
cmp word [ebp - 0xc], 0
je 0x100048a1
cmp word [0x100100c4], 0
je 0x100048a1
mov dword [0x10010018], 0xb1b5ebd1
mov dword [0x1001001c], 0
movsx eax, word [ebp - 0xc]
movzx ecx, byte [0x1001000f]
sub ecx, eax
movsx eax, word [ebp - 0x14]
sub ecx, eax
mov eax, dword [0x10010070]
inc eax
add eax, ecx
mov dword [0x10010030], eax
jmp 0x100048a1
mov al, byte [0x10010002]
mov ax, word [0x1023e8e6]
mov word [0x100100b4], ax
mov ecx, dword [ebp - 0x30]
mov edi, 0xec
movzx eax, word [ebx]
shl eax, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
imul eax, ecx
movsx ecx, word [0x10010020]
sub ecx, eax
mov eax, dword [0x100100ac]
mov si, word [0x100100b0]
add eax, ecx
mov bl, byte [0x10010014]
mov dword [0x10010058], eax
mov ax, word [0x10010020]
mov edx, 0x99
nop dword [eax + eax]
movzx ecx, si
inc ax
imul ecx, ecx, 0xf7bcf3a9
mov word [0x10010020], ax
mov dword [ebp - 0x34], ecx
movsx ecx, bl
imul ecx, ecx, 0x8983
mov dword [0x100100ac], ecx
sub edx, 1
jne 0x100048f0
sub edi, 1
jne 0x100048e3
mov eax, dword [0x10150a48]
mov dword [0x10010044], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, 0x2799
xor cx, ax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp + 0xc]
mov word [0x100100a8], cx
mov ecx, dword [ebp - 0x1c]
sar eax, 0x10
mov word [ecx], ax
mov edi, dword [ebp - 0x18]
jmp 0x1000538a
cmp ax, 4
jne 0x10004e5f
sub esp, 0x10
test dl, 2
jne 0x10005467
mov ecx, dword [0x10010090]
mov eax, dword [0x10010094]
movzx esi, word [ebx]
mov eax, 0x4ef8
add cx, ax
shl esi, 0x10
mov word [0x10010068], cx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
add cl, 0x77
mov eax, dword [0x100100a0]
mov byte [0x10010014], cl
mov ecx, dword [0x100100a4]
mov dword [ebp - 0x1c], esi
call fcn.10001160
cwde
add esp, 0x10
cdq
mov dword [0x10010048], eax
or eax, edx
mov dword [0x1001004c], edx
jne 0x10004a4e
mov al, byte [ebp - 3]
sub esp, 0x10
call fcn.10001160
mov byte [ebp - 6], al
add esp, 0x10
cmp byte [ebp - 6], 0
jge 0x100049f2
cmp dword [ebp - 0x44], 0
je 0x10004a66
movzx eax, byte [ebp - 3]
imul eax, eax, 0x51
mov byte [0x1001000e], al
jmp 0x10004a66
mov al, byte [ebp - 5]
movsx ecx, byte [0x10010013]
movsx edx, al
imul edx, ecx
mov ecx, dword [0x100100a0]
mov eax, dword [0x100100a4]
movsx ecx, cl
not dl
movsx eax, dl
imul ecx, eax
movsx eax, byte [0x100100b8]
movsx ecx, cl
imul ecx, eax
movsx eax, byte [0x100100b8]
movsx ecx, cl
imul ecx, eax
mov eax, 0xb25
cwde
mov byte [ebp - 4], cl
mov cx, word [0x1001000c]
movsx ecx, cx
imul ecx, eax
mov word [ebp - 0x14], cx
jmp 0x10004a66
movsx eax, word [0x1001000c]
mov dword [0x10010044], eax
mov ax, word [0x100d60e0]
mov word [0x10010088], ax
movsx eax, word [edi + 2]
add edi, 2
dec dword [ebp - 0x58]
add esi, eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x10010008]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x18], edi
xor edi, edi
cmp ecx, eax
jne 0x10004aac
cmp edi, edx
jne 0x10004aac
mov cl, byte [0x10010028]
mov al, byte [ebp - 3]
xor cl, 0x98
sub al, cl
mov byte [ebp - 3], al
movsx eax, word [section..data]
imul eax, eax, 0x8d3dfa68
add dword [ebp - 0x68], eax
mov edi, dword [ebp + 0xc]
sub esp, 8
add edi, 0x8000
add edi, esi
call fcn.10001730
xor edx, edx
mov word [0x1001008c], ax
add esp, 8
cmp word [0x1001008c], 0x11
movzx eax, word [0x1001008c]
setne dl
xor ecx, ecx
test ax, ax
setne cl
cmp ecx, edx
jne 0x10004c59
mov eax, dword [ebp - 0x28]
sub esp, 8
mov ecx, dword [ebp - 0x24]
call fcn.10001ea0
movzx eax, ax
add esp, 8
mov dword [0x10010030], eax
cmp dword [0x10010030], 0
jbe 0x10004c25
mov al, byte [0x1000f078]
movups xmm0, xmmword [str.invalid_argument]
mov byte [ebp - 0x84], al
lea eax, [ebp - 0x94]
push eax
movups xmmword [ebp - 0x94], xmm0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [0x10010080], eax
mov dword [0x10010084], edx
mov esi, dword [ebp - 0x10]
mov eax, edi
sar eax, 0x10
mov word [ebx], ax
movups xmm0, xmmword [str.The_function_is_un]
mov eax, dword [0x1000f09c]
mov dword [ebp - 0x9c], eax
mov ax, word [0x1000f0a0]
movups xmmword [ebp - 0xbc], xmm0
mov word [ebp - 0x98], ax
lea eax, [ebp - 0xbc]
movups xmm0, xmmword [0x1000f08c]
push eax
movups xmmword [ebp - 0xac], xmm0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
sub edi, dword [ebp - 0x1c]
mov byte [ebp - 1], al
mov eax, dword [ebp + 0xc]
shr edi, 0x10
shr eax, 0x10
sub edi, eax
cmp edi, 1
jne 0x10004db7
mov eax, dword [ebp - 0x28]
sub esp, 8
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x54]
call fcn.10001ea0
xor edx, edx
movzx ecx, ax
add esp, 8
mov dword [0x10010098], ecx
cmp ax, 0x1c
setne dl
xor ecx, ecx
test ax, ax
setne cl
cmp ecx, edx
jne 0x10004d77
movzx eax, word [0x10010068]
xor edx, edx
cmp ax, word [0x100100b4]
movzx eax, word [0x10010068]
setg dl
xor ecx, ecx
cmp ax, 0x42
setg cl
cmp edx, ecx
jne 0x10004caa
movzx eax, byte [0x1001000e]
mov dword [0x10010058], eax
mov eax, dword [ebp - 0x4c]
or word [eax], di
mov edi, dword [ebp - 0x18]
jmp 0x1000538a
cmp dword [ebp - 0x64], 0
je 0x10004b44
mov al, byte [ebp - 2]
mov cl, byte [ebp - 2]
mov dl, byte [ebp - 2]
add dl, al
add dl, cl
mov byte [ebp - 2], dl
movsx eax, byte [ebp - 5]
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
cdq
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], esi
jmp 0x10004b44
mov cx, word [0x100100b0]
xor eax, eax
inc cx
mov edx, 0x1357
cmp word [ebp - 0x10], ax
mov word [0x100100b0], cx
sete al
add ax, cx
imul ecx, dword [0x10010044], 0x478
not ax
movzx eax, ax
xor ecx, eax
movzx eax, cx
movzx ecx, byte [0x1001000e]
sub cx, dx
movzx ecx, cx
imul ecx, eax
movzx esi, cx
mov dword [ebp - 0x10], esi
jmp 0x10004b47
cmp byte [0x1001000e], 0
je 0x10004da8
mov eax, dword [0x10010080]
or eax, dword [0x10010084]
mov dword [ebp - 0x1c], 0x55
je 0x10004cd2
mov dword [ebp - 0x1c], 0x54
movsx ecx, word [section..data]
mov eax, dword [ebp - 0x34]
xor eax, ecx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x7c]
cdq
add eax, 0x433bddbf
adc edx, 0x56b72
push edx
push eax
push ecx
push esi
call fcn.1000e790
mov edi, eax
mov ebx, edx
movzx eax, word [0x100100c4]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x5c]
movzx eax, ax
cdq
add ecx, eax
mov ax, word [ebp - 0x14]
adc esi, edx
add ecx, dword [ebp - 0x1c]
adc esi, 0
add ecx, edi
mov dword [0x10010048], ecx
adc esi, ebx
mov edi, dword [ebp - 0x18]
xor ecx, ecx
mov dword [0x1001004c], esi
test ax, ax
mov eax, dword [ebp - 0x54]
sete cl
imul edx, dword [0x100100ac], 0xb064eca9
add eax, ecx
mov ecx, dword [ebp - 0x28]
xor ecx, 0xb064eca9
xor edx, eax
mov eax, dword [ebp - 0x24]
movsx eax, word [0x100100b4]
sub eax, edx
sub eax, ecx
add eax, 0x6cde599b
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x4c]
or word [eax], 1
jmp 0x1000538a
mov ax, word [ebp - 0x14]
xor ecx, ecx
test ax, ax
movzx eax, byte [ebp - 1]
sete cl
cmp ecx, eax
je 0x10004da8
movsx eax, word [0x100100c0]
sub ax, word [section..data]
add esi, 0xffff
mov word [0x100100c0], ax
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x18]
or word [eax], 1
jmp 0x1000538a
test edi, edi
je 0x1000494b
mov ax, word [0x10010010]
sub esp, 8
call fcn.10001730
add esp, 8
mov byte [0x10010013], al
test al, al
je 0x10004e27
movsx ecx, word [ebp - 0xc]
xor edx, edx
movzx eax, byte [0x1001000e]
cmp ecx, eax
mov ax, word [ebp - 0xc]
sete dl
xor ecx, ecx
cmp ax, 0x5c
sete cl
cmp edx, ecx
jae 0x10004e10
mov eax, dword [0x101a2060]
mov dword [ebp - 0x54], eax
movzx eax, byte [0x10010003]
mov dword [ebp - 0x68], eax
jmp 0x10004e27
movsx ecx, word [0x100100a8]
movzx eax, byte [0x1001000f]
and ax, cx
mov word [0x100100a8], ax
movsx eax, byte [0x10010014]
cmp eax, dword [ebp - 0x6c]
jle 0x10004e50
mov eax, dword [ebp - 0x64]
cdq
mov dword [0x10041cd8], eax
mov eax, dword [0x10010044]
shr eax, 4
mov dword [0x10041cdc], edx
mov word [0x100100c0], ax
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x18]
or word [eax], 2
jmp 0x1000538a
cmp ax, 2
jne 0x10004ed6
mov al, byte [ebp - 5]
movzx edi, word [ebx]
test esi, esi
je 0x10004e73
mov byte [ebp - 3], 0x4f
movzx eax, byte [ebp - 1]
mov esi, dword [0x10010050]
mov ecx, dword [0x10010054]
cdq
push edx
push eax
push ecx
push esi
call fcn.1000e790
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x7c]
add eax, 0xffffffe4
cdq
add ecx, eax
movsx eax, word [section..data]
mov dword [ebp - 0x28], ecx
adc esi, edx
cdq
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
add ecx, eax
mov eax, dword [ebp + 0xc]
adc esi, edx
add ecx, 0x5a771175
mov dword [ebp - 0x40], ecx
adc esi, 0xfff620c5
add eax, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x3c], esi
mov word [ebx], ax
jmp 0x1000538a
test ax, ax
jne 0x10004f0c
movzx eax, word [0x100100c4]
mov ecx, dword [0x10010070]
sub ecx, eax
mov eax, dword [0x10010070]
add eax, ecx
mov dword [0x10010070], eax
movsx ecx, byte [ebp - 6]
mov eax, dword [0x10010040]
imul eax, ecx
mov dword [0x10010070], eax
jmp 0x1000538a
cmp ax, 6
jne 0x10004f38
mov eax, dword [0x10010030]
add al, 0x20
add byte [0x1001000f], al
movzx eax, word [0x1001008c]
add ax, word [0x100100b4]
mov word [0x1001008c], ax
jmp 0x1000538a
cmp ax, 7
jne 0x100050fd
mov eax, dword [0x100100ac]
sub esp, 0x28
call fcn.10001d00
mov ecx, dword [0x10010004]
xor edx, edx
mov byte [0x1001000f], al
add esp, 0x28
movzx eax, word [0x100100b8]
cmp eax, ecx
mov eax, dword [ebp - 0x54]
not eax
setge dl
cmp eax, edx
jbe 0x10004fa4
mov eax, dword [0x10010078]
or eax, dword [0x1001007c]
jne 0x10004fa4
movsx eax, word [ebp - 0x14]
mov esi, dword [0x10010050]
mov ecx, dword [0x10010054]
cdq
cmp edx, ecx
jl 0x1000538a
jg 0x10004fa4
cmp eax, esi
jb 0x1000538a
mov ax, word [0x100100c0]
sub esp, 0x28
mov eax, dword [0x100100a0]
mov ecx, dword [0x100100a4]
mov eax, dword [ebp - 0x34]
call fcn.10001d00
xor edx, edx
mov dword [ebp - 0x60], eax
add esp, 0x28
cmp eax, 0x57
setne dl
xor ecx, ecx
test eax, eax
setne cl
cmp ecx, edx
jae 0x100050ac
cmp byte [0x10010015], 0
je 0x10005033
mov eax, dword [0x10010040]
shr eax, 8
mov word [ebp - 0x14], ax
mov esi, dword [0x10010090]
mov edx, dword [0x10010094]
mov ecx, dword [0x10010018]
mov eax, dword [0x1001001c]
push eax
push ecx
push edx
push esi
call fcn.1000e790
mov ecx, dword [0x10010090]
mov esi, dword [0x10010094]
add ecx, eax
mov dword [0x10010090], ecx
adc esi, edx
mov dword [0x10010094], esi
jmp 0x1000538a
mov eax, dword [ebp - 0x5c]
movzx esi, ax
movsx eax, word [0x10010020]
cmp eax, esi
jge 0x10005058
movsx ecx, word [ebp - 0xc]
mov eax, dword [ebp - 0x34]
not eax
imul eax, ecx
test eax, eax
je 0x1000538a
movsx ax, byte [ebp - 6]
mov ecx, 0x7e72
mov edx, dword [0x10010040]
add ax, cx
movsx ecx, byte [0x10010014]
movzx ebx, ax
movsx eax, byte [0x10010012]
add ecx, eax
mov dword [ebp - 0x10], ebx
neg ecx
sbb ecx, ecx
sub edx, 0x26f2d653
inc ecx
and edx, ecx
movsx ecx, word [ebp - 0x14]
imul eax, dword [0x10010030], 0x20a82638
imul ecx, esi
add eax, ecx
cmp edx, eax
sete byte [ebp - 1]
jmp 0x1000538d
mov ax, word [ebp - 0xc]
xor edx, edx
test ax, ax
movsx eax, word [ebp - 0xc]
sete dl
xor ecx, ecx
cmp edx, eax
movzx eax, byte [0x10010013]
setl cl
cmp eax, ecx
ja 0x1000538a
mov eax, dword [ebp - 0x54]
sub word [0x10010088], ax
mov eax, dword [0x10010038]
mov ecx, dword [0x1001003c]
sub eax, 1
mov dword [0x10010038], eax
sbb ecx, 0
mov dword [0x1001003c], ecx
jmp 0x1000538a
cmp ax, 0xb
jne 0x10005611
mov al, byte [0x10010013]
mov dl, 0xd
cmp al, byte [ebp - 1]
mov al, byte [ebp - 1]
sbb ecx, ecx
inc ecx
cmp dl, al
sbb eax, eax
inc eax
cmp ecx, eax
jae 0x10005141
mov ecx, dword [0x10010018]
mov eax, dword [0x1001001c]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x10]
sub eax, ecx
mov dword [ebp - 0x34], eax
movzx eax, dx
shr eax, 3
mov dword [0x10010004], eax
movzx ecx, word [0x100100c4]
add edi, 2
movzx eax, byte [0x10010003]
imul ecx, esi
mov dword [ebp - 0x18], edi
sub ecx, eax
mov eax, dword [0x10010040]
add eax, ecx
mov dword [0x10010030], eax
movzx eax, word [ebx]
shl eax, 0x10
cdq
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x64]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cdq
cmp edx, ecx
jb 0x10005199
ja 0x10005185
cmp eax, edi
jb 0x10005199
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x30], eax
adc ecx, 0
mov dword [ebp - 0x2c], ecx
jmp 0x10005208
mov eax, dword [0x10010038]
mov ecx, dword [0x1001003c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movsx ecx, word [ebp - 0x14]
movzx eax, byte [ebp - 1]
sub ecx, eax
jne 0x100051be
lea edi, [ecx + 1]
mov dword [ebp - 0x4c], ecx
jmp 0x100051cf
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x10010044]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
and ecx, eax
movsx eax, byte [0x10010014]
xor edx, edx
sub ecx, edi
mov dword [0x10010078], ecx
sbb edx, dword [ebp - 0x4c]
mov dword [0x1001007c], edx
cdq
sub eax, 0x7387ead2
mov dword [ebp - 0x28], eax
sbb edx, 0xea494
mov dword [ebp - 0x24], edx
mov edi, dword [ebp - 0x18]
lea eax, [edi + 2]
mov dword [ebp - 0x18], eax
movsx eax, word [eax]
cdq
add ebx, eax
mov ax, word [0x100100a8]
movsx cx, byte [ebp - 5]
adc esi, edx
shld esi, ebx, 0x10
add cx, ax
shl ebx, 0x10
movzx eax, word [edi]
cdq
add ebx, eax
mov word [0x100100a8], cx
mov al, byte [ebp - 4]
adc esi, edx
sub esp, 0x30
mov dword [ebp - 0x4c], esi
call fcn.10001000
mov byte [0x10010013], al
add esp, 0x30
mov al, byte [0x10010002]
or al, byte [ebp - 2]
jne 0x10005260
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x10010018]
mov eax, dword [0x1001001c]
or ecx, eax
jne 0x1000527d
cmp word [0x10010010], cx
jne 0x1000527d
or ecx, 0xffffffff
jmp 0x10005282
mov ecx, 0xfffffffe
mov eax, dword [0x10010018]
mov edx, dword [0x1001001c]
cmp eax, ecx
jne 0x100052ef
cmp edx, 0xffffffff
jne 0x100052ef
movsx eax, word [0x10010068]
cmp dword [ebp - 0x60], eax
jl 0x100052d6
movsx eax, byte [0x10010014]
sar eax, 4
mov dword [ebp - 0x54], eax
mov eax, dword [0x10010044]
mov ecx, dword [ebp - 0x28]
neg eax
sbb eax, eax
and eax, 0xffffffdb
add eax, 0x25
movzx edx, ax
mov eax, dword [ebp - 0x24]
sub dx, cx
not dx
mov word [0x1001008c], dx
jmp 0x100052ef
mov eax, dword [ebp - 0x34]
not eax
cmp eax, dword [0x10010008]
jae 0x100052ef
mov ax, word [0x100202e8]
mov word [section..data], ax
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
not ecx
movsx eax, byte [ebp - 5]
not esi
mov edi, dword [ebp + 0xc]
cdq
xor edx, esi
xor eax, ecx
xor esi, esi
mov dword [ebp - 0x28], eax
add edi, ebx
mov dword [ebp - 0x24], edx
mov ax, word [0x100100c4]
adc esi, dword [ebp - 0x4c]
add edi, 0x8000
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
adc esi, 0
sub esp, 8
shrd edi, esi, 0x10
sar esi, 0x10
call fcn.10001730
mov word [ebp - 0x14], ax
add esp, 8
cmp word [ebp - 0x14], 0
je 0x10005357
movsx ax, byte [ebp - 6]
mov ecx, 0x25a
sub ax, cx
movzx eax, ax
mov dword [ebp - 0x5c], eax
movzx eax, byte [section..data]
add edi, 0x8000
mov ecx, dword [ebp - 0x1c]
adc esi, 0
imul eax, eax, 0xf6
shrd edi, esi, 0x10
sub dword [ebp - 0x58], 2
mov word [ecx], di
mov edi, dword [ebp - 0x18]
mov byte [ebp - 1], al
mov eax, 0x240
mov word [ebp - 0xc], ax
mov ebx, dword [ebp - 0x10]
movsx eax, word [0x10010020]
cmp dword [ebp - 0x60], eax
jle 0x10005451
mov ecx, dword [ebp - 0x44]
movsx eax, byte [0x10010012]
not ecx
cmp eax, ecx
ja 0x100053df
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub eax, 0x16b792f
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
sbb ecx, 0x18b61
mov dword [ebp - 0x24], ecx
mov ecx, dword [0x10010044]
movzx eax, ax
sub ecx, eax
mov eax, dword [0x10010044]
add eax, ecx
mov dword [0x10010044], eax
jmp 0x10005451
mov eax, dword [ebp - 0x64]
mov ecx, dword [0x10010050]
mov esi, dword [0x10010054]
cdq
cmp eax, ecx
jne 0x100053fe
cmp edx, esi
jne 0x100053fe
mov ecx, 1
jmp 0x10005400
xor ecx, ecx
movsx eax, byte [0x10010002]
add eax, ecx
jne 0x10005412
lea esi, [eax + 1]
xor edx, edx
jmp 0x10005420
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov edx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x78]
mov ecx, dword [0x10010008]
xor eax, eax
add ecx, dword [0x10010028]
push edx
adc eax, dword [0x1001002c]
sub ecx, 0xcce3
push esi
sbb eax, 0
push eax
push ecx
call fcn.1000e790
mov dword [0x10010080], eax
mov dword [0x10010084], edx
mov eax, dword [ebp - 0x58]
add edi, 2
mov dword [ebp - 0x18], edi
test eax, eax
jne 0x100045d8
jmp 0x100056e0
call fcn.10001880
movzx ebx, ax
xor ecx, ecx
add esp, 0x10
cmp ebx, 0x1e
setne cl
xor eax, eax
test bx, bx
setne al
cmp eax, ecx
jne 0x100054c4
mov eax, dword [0x10010028]
or eax, dword [0x1001002c]
je 0x100054bb
movzx eax, byte [ebp - 3]
add al, byte [0x1001f3ec]
mov ecx, dword [str.Ep_M]
mov byte [ebp - 3], al
mov eax, dword [0x10010064]
shld eax, ecx, 8
shl ecx, 8
mov word [0x1001008c], cx
jmp 0x100054fe
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x34], eax
jmp 0x100054fe
movsx eax, byte [ebp - 4]
cdq
cmp dword [0x10010064], edx
jb 0x100054fe
ja 0x100054db
cmp dword [str.Ep_M], eax
jbe 0x100054fe
movzx eax, word [0x1001000c]
cmp word [0x100100b4], 0
movzx ecx, word [0x10010020]
cmovne ecx, eax
movsx eax, cx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cmp dword [0x10010008], 0
je 0x10005564
movsx eax, word [ebp - 0x14]
xor edx, edx
cmp eax, dword [ebp - 0x68]
mov ax, word [ebp - 0x14]
setge dl
xor ecx, ecx
cmp ax, 0x5f
setge cl
cmp edx, ecx
jae 0x10005547
mov eax, dword [0x10010078]
mov ecx, 0x3ab1
add eax, 0xb35
mov word [0x100100a8], ax
movsx ax, byte [ebp - 4]
add ax, cx
mov word [ebp - 0x14], ax
jmp 0x1000557d
mov ecx, dword [0x10010050]
mov eax, dword [0x10010054]
or ecx, eax
je 0x1000557d
movsx eax, byte [ebp - 5]
and eax, 0x851a
mov dword [ebp - 0x6c], eax
jmp 0x1000557d
mov ax, word [0x100d60e0]
mov word [0x100100b8], ax
movzx eax, byte [ebp - 3]
imul eax, eax, 0xa7
mov byte [ebp - 3], al
add edi, 2
cmp word [0x100100b0], 0
je 0x100056e0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.100014a0
movzx eax, al
add esp, 4
mov word [0x1001008c], ax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cmp eax, 0x296d9b77
jne 0x100055c8
cmp ecx, 0x71406
jne 0x100055c8
mov eax, dword [0x10010004]
mov eax, dword [ebp - 0x6c]
jmp 0x100056e0
mov edx, 0x17c
nop dword [eax]
mov ax, word [ebp - 0xc]
add ax, word [0x10010008]
mov ecx, dword [0x10010048]
not ecx
movzx eax, ax
add ecx, dword [str.Ep_M]
xor ecx, eax
mov dword [0x100100bc], 0xd46fabb0
mov word [ebp - 0x14], cx
mov eax, dword [0x10010004]
inc eax
mov dword [0x10010004], eax
sub edx, 1
jne 0x100055d0
jmp 0x100056e0
movsx eax, byte [ebp - 5]
mov esi, dword [0x10010090]
mov ecx, dword [0x10010094]
cdq
cmp ecx, edx
jl 0x1000564b
jg 0x1000562c
cmp esi, eax
jb 0x1000564b
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x5c]
movzx eax, ax
sub ecx, eax
mov eax, dword [ebp - 0x44]
xor eax, ecx
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 3]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x6c], 0
je 0x10005688
cmp dword [0x100100ac], 0
je 0x10005688
xor ecx, ecx
cmp word [ebp - 0x5c], cx
sete cl
xor ecx, dword [ebp - 0x44]
movsx eax, word [0x100100a8]
add eax, ecx
mov ecx, dword [ebp - 0x44]
add ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
mov dword [0x10010030], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 2], 0
je 0x10005695
mov edx, 1
jmp 0x10005697
xor edx, edx
movzx ecx, word [0x100100c4]
mov eax, dword [0x10010058]
not eax
cmp eax, ecx
sbb eax, eax
inc eax
cmp edx, eax
jb 0x100056d4
cmp dword [ebp - 0x7c], 0
jne 0x100056bf
mov eax, dword [0x100100a0]
mov ecx, dword [0x100100a4]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov eax, 0x87
add cx, ax
mov word [section..data], cx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
cmp byte [0x10010012], 0
jne 0x1000571a
movsx ecx, byte [ebp - 4]
xor edx, edx
movzx eax, bx
cmp eax, ecx
mov ax, 0x4b
setle dl
cmp ax, bx
sbb eax, eax
inc eax
cmp edx, eax
jbe 0x10005740
lea eax, [ebx + 0x488]
mov word [0x10010088], ax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [0x10010002]
imul ecx, eax, 0x71
mov byte [ebp - 1], cl
movzx ecx, word [0x10010088]
mov edx, dword [0x10010040]
add cx, cx
add edx, ecx
mov word [0x10010088], dx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret