Function at 0x4146d0
Capabilities:
Encode data using xor
Encrypt data using aes
Hash data with md5
Reference aes constants

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b357
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x378
mov eax, dword [0x450008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x380], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
lea edx, [eax - 0x20]
cmp eax, edx
jb 0x415487
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push 0x20
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x1b0]
add eax, edx
push eax
call fcn.00404e80
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0xf
mov byte [ebp - 0x178], 0
lea ecx, [eax - 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
cmovae eax, dword [ebx + 8]
push ecx
push eax
lea ecx, [ebp - 0x178]
call fcn.00404e80
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebx + 8]
call fcn.00411ce0
mov edx, dword [ebp - 0x164]
cmp edx, 0x10
jb 0x4147ed
mov ecx, dword [ebp - 0x178]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4147e3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41548c
push edx
push ecx
call fcn.004162d7
add esp, 8
mov esi, dword [ebp - 0x1a0]
xor ecx, ecx
test esi, esi
je 0x414823
nop dword [eax]
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1b0]
xor byte [eax + ecx], 0x77
inc ecx
mov esi, dword [ebp - 0x1a0]
cmp ecx, esi
jb 0x414800
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push dword [ebx + 0x18]
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x228]
push eax
mov byte [ebp - 0x1c0], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x228], 0x67452301
mov dword [ebp - 0x224], 0xefcdab89
mov dword [ebp - 0x220], 0x98badcfe
mov dword [ebp - 0x21c], 0x10325476
call fcn.00403ff0
push ecx
lea ecx, [ebp - 0x228]
call fcn.00403f00
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.004047c0
cmp dword [ebp - 0x164], 0x10
lea ecx, [ebp - 0x178]
mov edi, dword [ebp - 0x178]
lea edx, [ebp - 0x1b0]
cmovae ecx, edi
cmp dword [ebp - 0x19c], 0x10
cmovae edx, dword [ebp - 0x1b0]
cmp esi, dword [ebp - 0x168]
jne 0x414927
sub esi, 4
jb 0x4148e1
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4148e6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x4148d0
cmp esi, 0xfffffffc
je 0x41491a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x414913
cmp esi, 0xfffffffd
je 0x41491a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x414913
cmp esi, 0xfffffffe
je 0x41491a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x414913
cmp esi, 0xffffffff
je 0x41491a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x41491a
sbb eax, eax
or eax, 1
jmp 0x41491c
xor eax, eax
mov byte [ebp - 0x359], 0
test eax, eax
je 0x41492e
mov byte [ebp - 0x359], 1
mov eax, dword [ebp - 0x164]
cmp eax, 0x10
jb 0x414964
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x41495a
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415491
push ecx
push edi
call fcn.004162d7
add esp, 8
cmp byte [ebp - 0x359], 0
je 0x414974
xor esi, esi
jmp 0x4153ff
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xf
mov byte [ebp - 0x160], 0
mov byte [ebp - 4], 2
mov edi, 4
movups xmm0, xmmword [0x44cbe0]
mov esi, dword [0x4512f8]
movups xmmword [ebp - 0x198], xmm0
movups xmm0, xmmword [0x44cbf0]
movups xmmword [ebp - 0x188], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x414b4c
xor edx, edx
mov dword [ebp - 0x360], edx
cmp esi, 2
jl 0x414b15
movaps xmm0, xmmword [str.0000000000000000O]
mov eax, 0x1f
movaps xmm4, xmmword [0x44cca0]
xor ecx, ecx
movaps xmm3, xmmword [0x44cce0]
movaps xmm6, xmmword [str.4444]
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
movd xmm5, edi
movd xmm7, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x44ccc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x198]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x198], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x44ccc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x194]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x194], xmm1
add ecx, 8
cmp ecx, 0x20
jl 0x414a10
jmp 0x414b4c
mov eax, 0x4ec4ec4f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x360]
movsx eax, al
mov cl, dl
imul eax, eax, 0x34
sub cl, al
add cl, 0x30
xor byte [ebp + edx - 0x198], cl
inc edx
mov dword [ebp - 0x360], edx
cmp edx, 0x20
jl 0x414b15
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x178], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414b70
sub ecx, edx
lea eax, [ebp - 0x198]
push ecx
push eax
lea ecx, [ebp - 0x178]
call fcn.00404e80
mov byte [ebp - 4], 3
movups xmm0, xmmword [0x44cbd0]
movups xmmword [ebp - 0x37c], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x414d37
xor edx, edx
mov dword [ebp - 0x360], edx
cmp esi, 2
jl 0x414d00
movaps xmm0, xmmword [str.0000000000000000O]
mov eax, 0x1f
movaps xmm4, xmmword [0x44cca0]
xor ecx, ecx
movaps xmm3, xmmword [0x44cce0]
movaps xmm6, xmmword [str.4444]
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
movd xmm5, edi
movd xmm7, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x44ccc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x37c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x37c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x44ccc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x378]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x378], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x414bf2
jmp 0x414d37
mov eax, 0x4ec4ec4f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x360]
movsx eax, al
mov cl, dl
imul eax, eax, 0x34
sub cl, al
add cl, 0x30
xor byte [ebp + edx - 0x37c], cl
inc edx
mov dword [ebp - 0x360], edx
cmp edx, 0x10
jl 0x414d00
lea ecx, [ebp - 0x37c]
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x190], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414d60
sub ecx, edx
lea eax, [ebp - 0x37c]
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.00404e80
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x178]
cmp dword [ebp - 0x164], 0x10
lea edx, [ebp - 0x11b]
xorps xmm0, xmm0
mov esi, 8
cmovae ecx, dword [ebp - 0x178]
movups xmmword [ebp - 0x38], xmm0
mov al, byte [ecx]
mov byte [ebp - 0x138], al
mov al, byte [ecx + 1]
mov byte [ebp - 0x137], al
mov al, byte [ecx + 2]
mov byte [ebp - 0x136], al
mov al, byte [ecx + 3]
mov byte [ebp - 0x135], al
mov al, byte [ecx + 4]
mov byte [ebp - 0x134], al
mov al, byte [ecx + 5]
mov byte [ebp - 0x133], al
mov al, byte [ecx + 6]
mov byte [ebp - 0x132], al
mov al, byte [ecx + 7]
mov byte [ebp - 0x131], al
mov al, byte [ecx + 8]
mov byte [ebp - 0x130], al
mov al, byte [ecx + 9]
mov byte [ebp - 0x12f], al
mov al, byte [ecx + 0xa]
mov byte [ebp - 0x12e], al
mov al, byte [ecx + 0xb]
mov byte [ebp - 0x12d], al
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x12c], al
mov al, byte [ecx + 0xd]
mov byte [ebp - 0x12b], al
mov al, byte [ecx + 0xe]
mov byte [ebp - 0x12a], al
mov al, byte [ecx + 0xf]
mov byte [ebp - 0x129], al
mov al, byte [ecx + 0x10]
mov byte [ebp - 0x128], al
mov al, byte [ecx + 0x11]
mov byte [ebp - 0x127], al
mov al, byte [ecx + 0x12]
mov byte [ebp - 0x126], al
mov al, byte [ecx + 0x13]
mov byte [ebp - 0x125], al
mov al, byte [ecx + 0x14]
mov byte [ebp - 0x124], al
mov al, byte [ecx + 0x15]
mov byte [ebp - 0x123], al
mov al, byte [ecx + 0x16]
mov byte [ebp - 0x122], al
mov al, byte [ecx + 0x17]
mov byte [ebp - 0x121], al
mov al, byte [ecx + 0x18]
mov byte [ebp - 0x120], al
mov al, byte [ecx + 0x19]
mov byte [ebp - 0x11f], al
mov al, byte [ecx + 0x1a]
mov byte [ebp - 0x11e], al
mov al, byte [ecx + 0x1b]
mov byte [ebp - 0x11d], al
mov al, byte [ecx + 0x1c]
mov byte [ebp - 0x11c], al
mov al, byte [ecx + 0x1d]
mov byte [ebp - 0x11b], al
mov al, byte [ecx + 0x1e]
mov byte [ebp - 0x11a], al
mov al, byte [ecx + 0x1f]
mov byte [ebp - 0x119], al
mov ah, byte [edx - 1]
mov edi, esi
mov al, byte [edx + 1]
mov ch, byte [edx + 2]
mov cl, byte [edx]
mov byte [ebp - 0x359], ah
mov byte [ebp - 0x35a], al
mov byte [ebp - 0x35b], ch
and edi, 7
jne 0x414f40
movzx eax, al
movzx ecx, cl
mov al, byte [eax + 0x44a5a8]
mov byte [ebp - 0x361], al
movzx eax, byte [ebp - 0x35b]
mov al, byte [eax + 0x44a5a8]
mov byte [ebp - 0x35a], al
movzx eax, byte [ebp - 0x359]
mov al, byte [eax + 0x44a5a8]
mov byte [ebp - 0x35b], al
mov eax, esi
shr eax, 3
mov ah, byte [eax + 0x44a7a8]
xor ah, byte [ecx + 0x44a5a8]
mov cl, byte [ebp - 0x361]
mov ch, byte [ebp - 0x35b]
jmp 0x414f7f
cmp edi, 4
jne 0x414f7f
movzx eax, ah
mov al, byte [eax + 0x44a5a8]
mov byte [ebp - 0x359], al
movzx eax, cl
mov cl, byte [eax + 0x44a5a8]
movzx eax, byte [ebp - 0x35a]
mov al, byte [eax + 0x44a5a8]
mov byte [ebp - 0x35a], al
movzx eax, ch
mov ch, byte [eax + 0x44a5a8]
mov ah, byte [ebp - 0x359]
mov al, byte [edx - 0x1d]
inc esi
xor al, ah
mov ah, byte [ebp - 0x35a]
mov byte [edx + 3], al
mov al, byte [edx - 0x1c]
xor al, cl
mov byte [edx + 4], al
mov al, byte [edx - 0x1b]
xor al, ah
mov byte [edx + 5], al
mov al, byte [edx - 0x1a]
xor al, ch
mov byte [edx + 6], al
add edx, 4
cmp esi, 0x3c
jb 0x414ec5
mov eax, dword [ebx + 0x18]
test al, 0xf
je 0x414fc3
mov esi, 0xd
jmp 0x415334
mov dword [ebp - 0x360], 0
test eax, 0xfffffff0
jbe 0x4150ee
xor edx, edx
mov dword [ebp - 0x368], edx
mov esi, dword [ebx + 0x1c]
xor ecx, ecx
mov edi, dword [ebx + 8]
nop dword [eax + eax]
cmp esi, 0x10
lea eax, [ebx + 8]
cmovae eax, edi
add eax, edx
mov al, byte [eax + ecx]
mov byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0x10
jb 0x414ff0
lea edx, [ebp - 0x138]
lea ecx, [ebp - 0x38]
call fcn.004030d0
xor esi, esi
nop dword [eax + eax]
cmp dword [ebp - 0x17c], 0x10
lea eax, [ebp - 0x190]
mov edx, dword [ebp - 0x150]
cmovae eax, dword [ebp - 0x190]
mov edi, dword [ebp - 0x14c]
mov cl, byte [eax + esi]
xor cl, byte [ebp + esi - 0x38]
mov byte [ebp - 0x1b4], cl
cmp edx, edi
jae 0x415074
lea eax, [edx + 1]
cmp edi, 0x10
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x160]
cmovae eax, dword [ebp - 0x160]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x415093
push dword [ebp - 0x1b4]
mov byte [ebp - 0x36c], 0
push dword [ebp - 0x36c]
push ecx
lea ecx, [ebp - 0x160]
call fcn.00413990
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
mov edx, dword [ebp - 0x368]
lea ecx, [ebp - 0x190]
cmovae eax, dword [ebx + 8]
cmp dword [ebp - 0x17c], 0x10
cmovae ecx, dword [ebp - 0x190]
add eax, edx
mov al, byte [eax + esi]
mov byte [ecx + esi], al
inc esi
cmp esi, 0x10
jb 0x415020
mov ecx, dword [ebp - 0x360]
add edx, 0x10
mov eax, dword [ebx + 0x18]
inc ecx
shr eax, 4
mov dword [ebp - 0x360], ecx
mov dword [ebp - 0x368], edx
cmp ecx, eax
jb 0x414fe0
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 0x160]
mov esi, dword [ebp - 0x160]
cmp edx, 0x10
mov edi, dword [ebp - 0x150]
cmovae eax, esi
mov cl, byte [eax + edi - 1]
mov al, cl
dec al
cmp al, 0xf
ja 0x415164
test cl, cl
jle 0x415164
movzx eax, cl
mov dword [ebp - 0x368], eax
nop word [eax + eax]
cmp edx, 0x10
lea eax, [ebp - 0x160]
lea ecx, [edi - 1]
cmovae eax, esi
mov dword [ebp - 0x150], ecx
sub dword [ebp - 0x368], 1
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x14c]
mov edi, dword [ebp - 0x150]
mov esi, dword [ebp - 0x160]
jne 0x415130
cmp edx, 0x10
lea ecx, [ebp - 0x160]
mov edx, edi
cmovae ecx, esi
sub esp, 8
call fcn.0040a550
mov esi, eax
lea eax, [ebp - 0x358]
push 0x12c
push 0
push eax
mov dword [ebp - 0x36c], esi
call fcn.00419080
add esp, 0x14
xor edi, edi
test esi, esi
jne 0x4151ad
mov dword [0x451e20], 0x10000
jmp 0x415254
cmp dword [esi], 1
je 0x4151c1
mov dword [0x451e20], 0x80000
jmp 0x415254
mov esi, dword [esi + 4]
lea eax, [ebp - 0x148]
push str.256.ico
push 0x104
push eax
call fcn.0041d3ab
mov ecx, dword [esi]
lea edx, [ebp - 0x148]
add esp, 0xc
push 2
call fcn.004094b0
add esp, 4
test eax, eax
je 0x41521d
push 0x128
lea eax, [ebp - 0x354]
push 0
push eax
call fcn.00419080
add esp, 0xc
mov dword [ebp - 0x358], 0xffffffff
mov eax, 0x500
or edi, 0xffffffff
jmp 0x415249
cmp dword [esi + 4], 0xffffffff
je 0x41522a
mov ecx, dword [esi]
call fcn.00409de0
mov eax, dword [esi]
mov ecx, esi
mov dword [esi + 4], 0xffffffff
mov edi, dword [eax + 0x10]
lea eax, [ebp - 0x358]
push eax
push edi
call fcn.00409e50
test eax, eax
jne 0x415249
mov esi, dword [ebp - 0x36c]
mov dword [0x451e20], eax
push dword [ebp - 0x230]
call fcn.00416503
push dword [ebp - 0x230]
mov edx, edi
mov dword [ebp - 0x36c], eax
push eax
mov ecx, esi
call fcn.0040a700
mov esi, dword [ebp - 0x36c]
lea ecx, [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
push dword [ebp - 0x230]
push esi
call fcn.00404e80
mov edi, dword [ebp - 0x380]
lea eax, [ebp - 0x40]
cmp edi, eax
je 0x4152f2
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x4152df
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x4152d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41548c
mov eax, edx
push ecx
push eax
call fcn.004162d7
add esp, 8
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [edi + 0x10], xmm0
jmp 0x415326
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x415326
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41531c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415496
push edx
push ecx
call fcn.004162d7
add esp, 8
push esi
call fcn.004162a2
add esp, 4
mov esi, 1
mov edx, dword [ebp - 0x17c]
cmp edx, 0x10
jb 0x41536e
mov ecx, dword [ebp - 0x190]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415364
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41549b
push edx
push ecx
call fcn.004162d7
add esp, 8
mov eax, dword [ebp - 0x164]
cmp eax, 0x10
jb 0x4153aa
mov edx, dword [ebp - 0x178]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4153a0
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154a0
push ecx
push edx
call fcn.004162d7
add esp, 8
mov edx, dword [ebp - 0x14c]
cmp edx, 0x10
jb 0x4153e4
mov ecx, dword [ebp - 0x160]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4153da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154a5
push edx
push ecx
call fcn.004162d7
add esp, 8
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xf
mov byte [ebp - 0x160], 0
mov eax, dword [ebp - 0x19c]
cmp eax, 0x10
jb 0x415437
mov edx, dword [ebp - 0x1b0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x41542d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154aa
push ecx
push edx
call fcn.004162d7
add esp, 8
mov edx, dword [ebx + 0x1c]
cmp edx, 0x10
jb 0x415467
mov ecx, dword [ebx + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41545d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154af
push edx
push ecx
call fcn.004162d7
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00416291
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004135f0
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
call fcn.0041ca55
int3