Function at 0x10004520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x78
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10049c70
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete dl
cmp dword [0x10070bac], 0xa
setge al
setl ah
xor ah, dl
or al, cl
xor al, 1
or al, ah
nop word cs:[eax + eax]
push eax
sub esp, 0x7c
mov ecx, esp
sub esp, 0x190
mov edi, esp
push eax
mov edx, esp
sub esp, 0x20
mov esi, esp
test al, 1
je 0x10004580
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x28], ecx
sub esp, 0x18
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x80], esp
sub esp, 0x1c
mov dword [ebp - 0x7c], esp
sub esp, 8
mov dword [ebp - 0x78], esp
sub esp, 0x10
mov dword [ebp - 0x74], esp
sub esp, 0x14
mov dword [ebp - 0x5c], esp
sub esp, 0x18
mov dword [ebp - 0x2c], esp
sub esp, 0x18
mov dword [ebp - 0x54], esp
sub esp, 0x18
mov dword [ebp - 0x4c], esp
sub esp, 0x18
mov dword [ebp - 0x50], esp
push eax
mov dword [ebp - 0x84], esp
mov dword [ebp - 0x10], 0xffffffff
lea esi, [ebp - 0x20]
mov ecx, esi
call fcn.10049f90
mov dword [ebp - 0x10], 1
mov ecx, esi
call fcn.1004dce0
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x20]
call fcn.1004e250
mov dword [ebp - 0x24], eax
mov ecx, dword [0x10070ba8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x10070bac], 0xa
setge cl
setl ch
xor ch, dl
jne 0x10004642
or cl, al
test cl, 1
je 0x10004642
nop dword [eax]
jmp 0x10004640
lea ecx, [ebp - 0x20]
call fcn.1004e840
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x20]
call fcn.1004ecd0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x10], 3
lea ecx, [ebp - 0x20]
call fcn.1004f600
mov ecx, dword [0x10070ba8]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dl
cmp dword [0x10070bac], 0xa
setge cl
setl ch
xor ch, dl
jne 0x100046a2
or cl, bl
test cl, 1
je 0x100046a2
nop dword [eax + eax]
jmp 0x100046a0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x20]
call fcn.100504c0
mov edx, dword [0x10070ba8]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp dword [0x10070bac], 0xa
setl cl
test cl, dl
jne 0x100046e2
xor cl, dl
jne 0x100046e2
nop dword [eax]
jmp 0x100046e0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x10], 5
lea ecx, [ebp - 0x20]
call fcn.10050070
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], 6
lea ecx, [ebp - 0x20]
call fcn.1004f360
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], 7
lea ecx, [ebp - 0x20]
call fcn.1004f990
mov ecx, dword [0x10070ba8]
mov edi, dword [0x10070bac]
lea esi, [ecx + 1]
imul esi, ecx
mov edx, esi
xor edx, 0xfffffffe
and edx, esi
sete bl
setne cl
cmp edi, 0xa
setl bh
setge ch
cmp bh, bl
jne 0x10004752
or ch, cl
je 0x10004752
nop dword [eax + eax]
jmp 0x10004750
mov dword [ebp - 0x60], eax
mov eax, edi
mov esi, dword [ebp - 0x34]
test esi, esi
sete ch
mov edi, dword [ebp - 0x24]
test edi, edi
sete bl
or esi, edi
setne cl
xor esi, esi
cmp ch, bl
jne 0x10004892
test cl, cl
mov edi, eax
je 0x10004894
cmp dword [ebp - 0x44], 0
sete cl
cmp dword [ebp - 0x70], 0
sete bl
or bl, cl
cmp dword [ebp - 0x6c], 0
sete cl
test bl, cl
jne 0x10004894
xor bl, cl
jne 0x10004894
mov eax, dword [ebp - 0x60]
movd xmm0, eax
movd xmm1, dword [ebp - 0x64]
punpckldq xmm1, xmm0
movd xmm0, dword [ebp - 0x68]
movd xmm2, dword [ebp - 0x48]
punpckldq xmm2, xmm0
punpcklqdq xmm2, xmm1
pxor xmm0, xmm0
pcmpeqd xmm0, xmm2
movmskps ecx, xmm0
test ecx, ecx
jne 0x10004894
movups xmm0, xmmword [0x1006708a]
mov edi, dword [ebp - 0x28]
movups xmmword [edi + 0x70], xmm0
movups xmm0, xmmword [0x1006707a]
movups xmmword [edi + 0x60], xmm0
movups xmm0, xmmword [0x1006706a]
movups xmmword [edi + 0x50], xmm0
movups xmm0, xmmword [0x1006705a]
movups xmmword [edi + 0x40], xmm0
movups xmm0, xmmword [0x1006704a]
movups xmmword [edi + 0x30], xmm0
movups xmm0, xmmword [0x1006703a]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [0x1006702a]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [str.Uwbqtty7_6_80Oqvwok8VL8__6_8Oqv._8_._18YhhtOzSql7__6.80SPLUT48tqs8_sw18_pjwu7_6_6__6__8Kyyjq7__6.8_]
movups xmmword [edi], xmm0
xor esi, esi
xor byte [edi + esi], 0x18
inc esi
push edi
call fcn.1005a270
add esp, 4
cmp esi, eax
jb 0x10004838
mov dword [ebp - 0x10], 8
push dword [ebp - 0x38]
push 0x202
call dword [ebp - 0x34]
mov edx, dword [0x10070ba8]
mov edi, dword [0x10070bac]
lea esi, [edx + 1]
imul esi, edx
mov edx, esi
xor edx, 0xfffffffe
and edx, esi
setne cl
sete bl
cmp edi, 0xa
setge bh
setl ch
xor ch, bl
jne 0x100048c5
or bh, cl
je 0x100048c5
nop dword [eax]
jmp 0x10004890
mov edi, eax
test edx, edx
sete dl
setne al
cmp edi, 0xa
setl ah
setge cl
cmp ah, dl
jne 0x100048b2
or cl, al
je 0x100048b2
nop dword [eax]
jmp 0x100048b0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
test eax, eax
je 0x100048e2
test edx, edx
sete al
cmp edi, 0xa
setl ah
test ah, al
jne 0x10004894
xor ah, al
jne 0x10004894
nop
jmp 0x100048e0
mov eax, dword [ebp - 0x40]
mov dword [eax], 0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x58]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 4], 2
mov dword [eax + 8], 1
mov dword [eax + 0xc], 6
mov eax, dword [0x10070044]
mov dword [ebp - 0x10], 0x13
push eax
push dword [ebp - 0x30]
call fcn.10009f70
add esp, 8
mov ecx, 0x52eed557
mov esi, dword [ebp - 0x30]
cmp ecx, 0xc6af01bb
je 0x1000494b
cmp ecx, 0x52eed557
jne 0x1000492d
mov ecx, esi
call fcn.10013e30
mov ecx, 0xc6af01bb
jmp 0x1000492d
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [0x10070ba8]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x10070bac], 0xa
setl dl
test dl, cl
jne 0x10004982
xor dl, cl
jne 0x10004982
nop word [eax + eax]
jmp 0x10004980
mov dword [ebp - 0x10], 0x14
push dword [ebp - 0x40]
push dword [ebp - 0x58]
push eax
push section..data
call dword [ebp - 0x24]
mov esi, eax
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
mov edi, dword [ebp - 0x30]
jne 0x100049ca
xor cl, al
je 0x10004a49
jmp 0x100049ca
mov eax, 0x3669dc4f
nop
cmp eax, 0x8a9b5a4
je 0x100049ec
cmp eax, 0x3669dc4f
jne 0x100049d0
mov ecx, edi
call fcn.10014180
mov eax, 0x8a9b5a4
jmp 0x100049d0
mov dword [ebp - 0x3c], edi
mov eax, 0x85a23d08
mov ecx, dword [ebp - 0x3c]
nop word [eax + eax]
cmp eax, 0x85a23d08
je 0x10004a10
cmp eax, 0xa98663fb
jne 0x10004a00
jmp 0x10004a17
mov eax, 0xa98663fb
jmp 0x10004a00
call fcn.10013ad0
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x10070bac], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x10004ab1
or cl, al
je 0x10004ab1
mov eax, 0x3669dc4f
jmp 0x10004a70
cmp eax, 0x3669dc4f
jne 0x10004a70
mov ecx, edi
call fcn.10014180
mov eax, 0x8a9b5a4
nop word cs:[eax + eax]
cmp eax, 0x8a9b5a4
jne 0x10004a50
mov dword [ebp - 0x3c], edi
mov eax, 0x85a23d08
mov ecx, dword [ebp - 0x3c]
nop word cs:[eax + eax]
cmp eax, 0x85a23d08
je 0x10004aa0
cmp eax, 0xa98663fb
jne 0x10004a90
jmp 0x10004aa7
mov eax, 0xa98663fb
jmp 0x10004a90
call fcn.10013ad0
jmp 0x100049ca
mov dword [ebp - 0x10], 9
test esi, esi
je 0x10004b02
call dword [ebp - 0x44]
mov edx, dword [0x10070ba8]
mov edi, dword [0x10070bac]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
and edx, 1
sete cl
cmp edi, 0xa
setl bh
setge bl
xor esi, esi
cmp bh, cl
jne 0x100048cb
or bl, al
test bl, 1
je 0x100048cb
nop word [eax + eax]
jmp 0x10004b00
push 6
push 1
push 2
call dword [ebp - 0x70]
cmp eax, 0xffffffff
je 0x10004b52
mov ecx, dword [0x10070ba8]
lea ebx, [ecx + 1]
imul ebx, ecx
test bl, 1
sete dl
cmp dword [0x10070bac], 0xa
mov ecx, dword [ebp - 0x80]
mov dword [ecx], 0x2710
setge cl
setl ch
xor ch, dl
jne 0x10004b7c
or cl, bl
test cl, 1
je 0x10004b7c
nop word cs:[eax + eax]
jmp 0x10004b50
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
jne 0x10004bd4
xor cl, al
jne 0x10004bd4
jmp 0x10004b7a
mov dword [ebp - 0x10], 0xa
push 4
push dword [ebp - 0x80]
push 0x1006
push 0xffff
mov dword [ebp - 0x34], eax
push eax
call dword [ebp - 0x6c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
push dword [eax + 0x10]
push dword [eax + 0x18]
push dword [ebp - 0x34]
call dword [ebp - 0x68]
mov ecx, dword [0x10070ba8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x10070bac], 0xa
setl dl
test dl, cl
jne 0x10004bfa
xor dl, cl
jne 0x10004bfa
jmp 0x10004bd2
mov dword [ebp - 0x24], 0
call dword [ebp - 0x44]
mov eax, dword [0x10070ba8]
mov edi, dword [0x10070bac]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov esi, dword [ebp - 0x24]
jmp 0x100048cb
cmp eax, 0xffffffff
je 0x10004ca3
movups xmm0, xmmword [0x100670a5]
mov ecx, dword [ebp - 0x7c]
movups xmmword [ecx + 0xb], xmm0
movups xmm0, xmmword [str.UWF2qtuvp_vsf2ZFFB_]
movups xmmword [ecx], xmm0
mov edi, dword [ebp - 0x78]
mov dword [edi], 0x66617d5a
mov dword [edi + 3], 0x322866
mov esi, dword [ebp - 0x74]
mov byte [esi + 0xc], 0
mov dword [esi + 8], 0x3228667c
mov dword [esi + 4], 0x7775533f
mov dword [esi], 0x60776147
movups xmm0, xmmword [str.Qwqf_2qaw]
mov eax, dword [ebp - 0x5c]
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0x77
push ecx
call fcn.1000a110
add esp, 4
push edi
call fcn.1000a110
add esp, 4
push esi
call fcn.1000a110
add esp, 4
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x10070bac], 0xa
setge cl
setl ah
xor ah, dl
jne 0x10004cd2
or cl, al
je 0x10004cd2
jmp 0x10004ca1
push dword [ebp - 0x34]
call dword [ebp - 0x48]
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
jne 0x10004d18
xor cl, al
jne 0x10004d18
jmp 0x10004cd0
push dword [ebp - 0x5c]
call fcn.1000a110
add esp, 4
mov dword [ebp - 0x10], 0xb
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x7c]
call fcn.1000a550
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
jne 0x10004d54
xor cl, al
jne 0x10004d54
jmp 0x10004d16
call dword [ebp - 0x44]
mov eax, dword [0x10070ba8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x10070bac], 0xa
setl cl
mov dword [ebp - 0x24], 0
test cl, al
jne 0x10004bde
xor cl, al
jne 0x10004bde
jmp 0x10004d52
mov dword [ebp - 0x10], 0xc
mov ecx, dword [ebp - 0x2c]
push 0x1006b57a
call fcn.1000a6e0
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x78]
call fcn.1000a6e0
mov ecx, dword [ebp - 0x2c]
push section..data
call fcn.1000a6e0
mov ecx, dword [ebp - 0x2c]
push 0x1006b56a
call fcn.1000a6e0
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
jne 0x10004db7
xor cl, al
jne 0x10004db7
jmp 0x10004db5
push dword [0x10070044]
push dword [ebp - 0x54]
call fcn.10009f70
add esp, 8
mov ecx, 0x52eed557
cmp ecx, 0xc6af01bb
je 0x10004dec
cmp ecx, 0x52eed557
jne 0x10004dcd
mov ecx, dword [ebp - 0x54]
call fcn.10013e30
mov ecx, 0xc6af01bb
jmp 0x10004dcd
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], 0xf
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.1000a6e0
mov ecx, dword [ebp - 0x54]
call fcn.1000a0b0
mov dword [ebp - 0x10], 0xc
mov ecx, dword [ebp - 0x2c]
push 0x1006b57a
call fcn.1000a6e0
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x74]
call fcn.1000a6e0
mov ecx, dword [0x10070ba8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x10070bac], 0xa
setge cl
setl ch
xor ch, dl
jne 0x10004e54
or cl, al
test cl, 1
je 0x10004e54
jmp 0x10004e52
mov dword [ebp - 0x10], 0x10
mov ecx, dword [ebp - 0x50]
push dword [ebp - 0x28]
call fcn.1000a550
mov dword [ebp - 0x10], 0x11
push 0x1006b57a
push dword [ebp - 0x50]
push dword [ebp - 0x4c]
call fcn.1000a7f0
add esp, 0xc
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x10070bac], 0xa
setge cl
setl ah
xor ah, dl
jne 0x10004eaf
or cl, al
je 0x10004eaf
jmp 0x10004ead
mov dword [ebp - 0x10], 0x12
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x4c]
call fcn.1000a850
mov ecx, dword [ebp - 0x4c]
call fcn.1000a0b0
mov ecx, dword [ebp - 0x50]
call fcn.1000a0b0
mov dword [ebp - 0x10], 0xc
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x5c]
call fcn.1000a6e0
mov ecx, dword [ebp - 0x2c]
push str._r_n_r_n
call fcn.1000a6e0
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x10070bac], 0xa
setl cl
test cl, al
jne 0x10004f19
xor cl, al
jne 0x10004f19
jmp 0x10004f17
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x10]
mov ecx, 0x7a87e583
cmp ecx, 0x7a87e583
je 0x10004f36
cmp ecx, 0xdd58f4b7
jne 0x10004f24
jmp 0x10004f3d
mov ecx, 0xdd58f4b7
jmp 0x10004f24
mov dword [ebp - 0x3c], eax
mov esi, dword [ebp - 0x3c]
mov ecx, 0x52eed557
cmp ecx, 0xc6af01bb
je 0x10004f67
cmp ecx, 0x52eed557
jne 0x10004f48
mov ecx, dword [ebp - 0x2c]
call fcn.10013e30
mov ecx, 0xc6af01bb
jmp 0x10004f48
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], 0xc
push 0
push esi
push eax
push dword [ebp - 0x34]
call dword [ebp - 0x64]
mov edx, dword [0x10070ba8]
mov esi, dword [0x10070bac]
lea ecx, [edx + 1]
mov dword [ebp - 0x30], edx
imul ecx, edx
mov edx, ecx
xor edx, 0xfffffffe
test edx, ecx
sete cl
mov dword [ebp - 0x24], esi
cmp esi, 0xa
setl dl
test dl, cl
jne 0x10004fb0
xor dl, cl
jne 0x10004fb0
jmp 0x10004fae
cmp eax, 0xffffffff
je 0x10005071
mov dword [ebp - 0x10], 0xd
push 0x400
call fcn.10054286
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], 0
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp dword [ebp - 0x24], 0xa
setl cl
test cl, al
jne 0x10004ffa
xor cl, al
je 0x1000506d
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
add eax, ecx
push 0
push 0x400
push eax
push dword [ebp - 0x34]
call dword [ebp - 0x60]
mov edx, dword [0x10070ba8]
mov esi, dword [0x10070bac]
lea ecx, [edx + 1]
mov dword [ebp - 0x30], edx
imul ecx, edx
and ecx, 1
sete dl
mov dword [ebp - 0x24], esi
cmp esi, 0xa
setl dh
test dh, dl
jne 0x1000503c
xor dh, dl
je 0x1000506f
cmp eax, 0xffffffff
je 0x1000508e
test eax, eax
jle 0x100050fe
mov ecx, dword [ebp - 0x38]
lea esi, [ecx + eax]
add eax, ecx
add eax, 0x400
push eax
push dword [ebp - 0x28]
call fcn.1005a1d1
add esp, 8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], esi
jmp 0x10004fd7
jmp 0x1000506d
jmp 0x1000506f
push dword [ebp - 0x34]
call dword [ebp - 0x48]
mov dword [ebp - 0x24], 0
call dword [ebp - 0x44]
mov ecx, dword [ebp - 0x2c]
call fcn.1000a0b0
jmp 0x10004bde
cmp dword [ebp - 0x28], 0
je 0x100050da
push dword [ebp - 0x28]
call fcn.10054298
add esp, 4
mov eax, dword [0x10070ba8]
mov esi, dword [0x10070bac]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete al
mov dword [ebp - 0x24], esi
cmp esi, 0xa
setl dl
test dl, al
jne 0x100050da
xor dl, al
jne 0x100050da
mov esi, dword [ebp - 0x28]
push esi
call fcn.10054298
add esp, 4
push esi
jmp 0x10005097
test ecx, ecx
setne al
sete dl
cmp dword [ebp - 0x24], 0xa
setge cl
setl ah
xor ah, dl
jne 0x1000518b
or cl, al
je 0x1000518b
jmp 0x100050fc
xor eax, eax
cmp dword [ebp - 0x38], 4
jl 0x1000511e
mov eax, dword [ebp - 0x38]
lea ecx, [eax - 3]
xor eax, eax
mov edx, dword [ebp - 0x28]
cmp byte [edx + eax], 0x20
je 0x1000511e
inc eax
cmp ecx, eax
jne 0x10005111
mov eax, ecx
mov ecx, dword [ebp - 0x28]
add eax, ecx
inc eax
push 3
push eax
mov esi, dword [ebp - 0x84]
push esi
call fcn.1005a300
add esp, 0xc
mov byte [esi + 3], 0
cmp dword [esi], 0x303032
je 0x100051a7
mov dword [ebp - 0x10], 0xe
push dword [ebp - 0x34]
call dword [ebp - 0x48]
call dword [ebp - 0x44]
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x10070bac], 0xa
setl cl
mov dword [ebp - 0x24], 0
test cl, al
jne 0x10005081
xor cl, al
jne 0x10005081
jmp 0x10005189
mov dword [ebp - 0x10], 0xd
push dword [ebp - 0x34]
call dword [ebp - 0x48]
mov dword [ebp - 0x24], 0
call dword [ebp - 0x44]
jmp 0x10005081
cmp dword [ebp - 0x38], 0
jle 0x10005204
mov eax, dword [ebp - 0x38]
neg eax
xor ecx, ecx
mov dword [ebp - 0x24], 4
jmp 0x100051ce
inc ecx
mov esi, dword [ebp - 0x24]
lea edx, [eax + esi]
inc edx
inc esi
mov dword [ebp - 0x24], esi
cmp edx, 4
je 0x10005204
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
cmp byte [edx + esi - 4], 0xd
jne 0x100051bd
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
cmp byte [edx + esi - 3], 0xa
jne 0x100051bd
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
cmp byte [edx + esi - 2], 0xd
jne 0x100051bd
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
cmp byte [edx + esi - 1], 0xa
jne 0x100051bd
jmp 0x1000520b
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0xe
mov dword [ebp - 0x30], eax
push eax
call fcn.10054286
add esp, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x30]
push esi
push eax
push dword [ebp - 0x40]
call fcn.100564d0
add esp, 0xc
push esi
call fcn.10054286
add esp, 4
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x3c]
push dword [ebp - 0x30]
push dword [ebp - 0x24]
push dword [ebp - 0x40]
call fcn.10053460
mov eax, dword [0x10070ba8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x10070bac], 0xa
setl cl
or cl, al
mov byte [ebp - 0x58], cl
je 0x100052a2
push dword [ebp - 0x30]
push 0
push dword [ebp - 0x40]
call fcn.10056a50
add esp, 0xc
push dword [ebp - 0x38]
push 0
push dword [ebp - 0x28]
call fcn.10056a50
add esp, 0xc
jmp 0x100052e5
mov ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x28]
push dword [ebp - 0x30]
push 0
push ebx
call fcn.10056a50
add esp, 0xc
push edi
push 0
push esi
call fcn.10056a50
add esp, 0xc
push dword [ebp - 0x30]
push 0
push ebx
call fcn.10056a50
add esp, 0xc
push edi
push 0
push esi
call fcn.10056a50
add esp, 0xc
cmp byte [ebp - 0x58], 0
je 0x100052ab
push dword [ebp - 0x40]
call fcn.10054298
add esp, 4
mov ecx, dword [0x10070ba8]
mov eax, dword [0x10070bac]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x10005321
or dh, dl
je 0x10005321
jmp 0x1000531f
cmp dword [ebp - 0x28], 0
je 0x1000534a
push dword [ebp - 0x28]
call fcn.10054298
add esp, 4
mov ecx, dword [0x10070ba8]
mov eax, dword [0x10070bac]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x1000535f
xor al, cl
jne 0x1000535f
jmp 0x1000535d
mov dword [ebp - 0x10], 0xe
push dword [ebp - 0x34]
call dword [ebp - 0x48]
call dword [ebp - 0x44]
jmp 0x10005081