Function at 0x410df0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x698
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [0x533eac]
push ebx
push esi
mov esi, dword [0x533e0c]
push edi
mov edi, dword [0x533db0]
mov dword [ebp - 0x690], eax
mov eax, dword [0x533e1c]
push 0x200
mov dword [ebp - 0x688], eax
lea eax, [ebp - 0x20c]
push 0
push eax
mov dword [ebp - 0x694], edi
call fcn.00414f00
add esp, 0xc
mov dword [ebp - 0x678], 0
lea eax, [ebp - 0x40c]
push 0x200
push 0
push eax
call fcn.00414f00
add esp, 0xc
lea eax, [ebp - 0x674]
push 0x64
push 0
push eax
call fcn.00414f00
mov ecx, dword [ebp + 0x1c]
add esp, 0xc
test ecx, ecx
je 0x410e9b
lea edx, [ebp - 0x20c]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x410e86
mov bl, byte [ebp - 0x20c]
jmp 0x410ea3
xor bl, bl
mov byte [ebp - 0x20c], bl
test edi, edi
jns 0x410fc0
push 0x1ff
lea eax, [ebp - 0x60b]
push 0
push eax
call fcn.00414f00
add esp, 0xc
test bl, bl
je 0x4119bf
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x67c], esi
test eax, eax
je 0x410ede
xor esi, eax
mov dword [ebp - 0x67c], esi
movsx ecx, word [ebp + 0x18]
lea edx, [ebp - 0x20c]
movzx eax, word [ebp + 0x24]
shl ecx, 0x10
or ecx, eax
mov byte [ebp - 0x60c], 0
mov dword [ebp - 0x678], ecx
lea ecx, [ebp - 0x60c]
cmp bl, 0x20
je 0x410f25
cmp bl, 9
je 0x410f25
cmp bl, 0xd
je 0x410f25
cmp bl, 0xa
je 0x410f25
lea eax, [ebx - 0x61]
cmp al, 0x19
ja 0x410f22
sub bl, 0x20
mov byte [ecx], bl
inc ecx
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x410f04
lea edi, [ebp - 0x60c]
mov byte [ecx], bl
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x410f38
push 0x1048
sub edi, ecx
call fcn.00416e66
mov esi, eax
lea edx, [ebp - 0x60c]
push edi
mov ecx, esi
call fcn.0040f040
lea eax, [ebp - 0x678]
mov ecx, esi
push eax
lea edx, [ebp - 0x67c]
call fcn.0040efa0
add esp, 0xc
push esi
call fcn.00416e4b
mov ecx, dword [ebp - 0x678]
add esp, 4
movzx eax, cx
shr ecx, 0x10
push eax
push ecx
mov ecx, dword [ebp - 0x67c]
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push str._04X__04X__04X__04X
push 0x5337bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
mov eax, 0x5337bc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00413dc9
mov esp, ebp
pop ebp
ret
cmp edi, 0x14
jl 0x411226
test bl, bl
jne 0x41122e
mov esi, dword [0x5339dc]
mov eax, 0x68db8bad
imul esi
mov edi, 0x5f5e100
mov dword [ebp - 0x678], 1
sar edx, 0xc
mov bl, 0x32
mov ecx, edx
mov byte [ebp - 0x20c], bl
shr ecx, 0x1f
add ecx, edx
xor edx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
div edi
lea eax, [edx + 1]
xor edx, edx
div edi
mov eax, 0xd1b71759
mov esi, edx
mul esi
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 5
mul edx
shr edx, 0xd
movzx eax, byte [edx + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [ebp - 0x20b], al
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
div edi
lea eax, [edx + 1]
xor edx, edx
div edi
mov eax, 0xd1b71759
mov esi, edx
mul esi
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 5
mul edx
shr edx, 0xd
movzx eax, byte [edx + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [ebp - 0x20a], al
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
xor edx, edx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
div edi
lea eax, [edx + 1]
xor edx, edx
div edi
mov eax, 0xd1b71759
mov esi, edx
mul esi
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 5
mul edx
shr edx, 0xd
movzx eax, byte [edx + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [ebp - 0x209], al
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
div edi
lea eax, [edx + 1]
xor edx, edx
div edi
mov eax, 0xd1b71759
mov esi, edx
mul esi
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 5
mul edx
shr edx, 0xd
movzx eax, byte [edx + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [ebp - 0x208], al
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
div edi
lea eax, [edx + 1]
xor edx, edx
div edi
mov eax, 0xd1b71759
mov dword [0x5339dc], edx
mul edx
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 5
mul edx
shr edx, 0xd
mov byte [ebp - 0x206], 0
movzx eax, byte [edx + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [ebp - 0x207], al
jmp 0x41122e
test bl, bl
je 0x4119bf
mov eax, dword [ebp + 0x20]
mov edx, dword [0x533e0c]
test eax, eax
je 0x41123d
xor edx, eax
mov ecx, dword [ebp + 0x34]
test cx, cx
je 0x411261
mov eax, ecx
mov byte [ebp - 0x40b], cl
shr eax, 8
lea ecx, [ebp - 0x40a]
mov byte [ebp - 0x40c], al
mov eax, dword [ebp + 0x30]
jmp 0x41126f
mov eax, dword [ebp + 0x30]
test ax, ax
je 0x411282
lea ecx, [ebp - 0x40c]
shr eax, 8
mov byte [ecx], al
mov eax, dword [ebp + 0x30]
mov byte [ecx + 1], al
add ecx, 2
mov eax, dword [ebp + 0x2c]
jmp 0x411290
mov eax, dword [ebp + 0x2c]
test ax, ax
je 0x4112a3
lea ecx, [ebp - 0x40c]
shr eax, 8
mov byte [ecx], al
mov eax, dword [ebp + 0x2c]
mov byte [ecx + 1], al
add ecx, 2
mov eax, dword [ebp + 0x28]
jmp 0x4112b1
mov eax, dword [ebp + 0x28]
test ax, ax
je 0x4112d2
lea ecx, [ebp - 0x40c]
shr eax, 8
mov byte [ecx], al
mov eax, dword [ebp + 0x28]
mov byte [ecx + 1], al
add ecx, 2
mov eax, dword [ebp + 0x24]
shr eax, 8
mov byte [ecx], al
lea esi, [ecx + 2]
mov eax, dword [ebp + 0x24]
mov byte [ecx + 1], al
jmp 0x4112f6
mov eax, dword [ebp + 0x24]
test ax, ax
je 0x4112f0
lea ecx, [ebp - 0x40c]
shr eax, 8
mov byte [ecx], al
lea esi, [ecx + 2]
mov eax, dword [ebp + 0x24]
mov byte [ecx + 1], al
jmp 0x4112f6
lea esi, [ebp - 0x40c]
mov ecx, dword [ebp + 0x18]
mov eax, ecx
shr eax, 8
mov byte [esi], al
mov eax, edx
shr eax, 0x18
mov byte [esi + 2], al
mov eax, edx
mov byte [esi + 1], cl
lea ecx, [esi + 2]
shr eax, 0x10
mov byte [ecx + 1], al
mov eax, edx
shr eax, 8
mov byte [ecx + 2], al
add ecx, 3
lea eax, [ebp - 0x40c]
push 0x200
push 0
mov byte [ecx], dl
sub ecx, eax
lea eax, [ebp - 0x60c]
inc ecx
push eax
mov dword [ebp - 0x680], ecx
call fcn.00414f00
add esp, 0xc
lea edx, [ebp - 0x20c]
lea ecx, [ebp - 0x60c]
test bl, bl
je 0x411381
cmp bl, 0x20
je 0x411379
cmp bl, 9
je 0x411379
cmp bl, 0xd
je 0x411379
cmp bl, 0xa
je 0x411379
lea eax, [ebx - 0x61]
cmp al, 0x19
ja 0x411376
sub bl, 0x20
mov byte [ecx], bl
inc ecx
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x411358
lea edx, [ebp - 0x60c]
mov byte [ecx], 0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x411390
sub edx, ecx
lea ecx, [ebp - 0x60c]
push 0xffffffffffffffff
call fcn.0040f230
mov ebx, dword [ebp - 0x680]
add esp, 4
mov esi, eax
xor edi, edi
mov dword [0x5339dc], esi
test ebx, ebx
jle 0x41143a
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
imul eax, ecx, 0x2710
sub esi, eax
imul eax, ecx, 0x16bd
imul ecx, esi, 0xc45
add eax, ecx
mov ecx, 0x2710
div ecx
imul ecx, esi, 0x16bd
imul eax, edx, 0x2710
xor edx, edx
add eax, ecx
mov ecx, 0x5f5e100
div ecx
lea eax, [edx + 1]
xor edx, edx
div ecx
mov eax, 0xd1b71759
mov esi, edx
mul esi
mov eax, 0xd1b71759
shr edx, 0xd
shl edx, 8
mul edx
shr edx, 0xd
xor byte [ebp + edi - 0x40c], dl
inc edi
cmp edi, ebx
jl 0x4113c1
mov dword [0x5339dc], esi
mov ebx, dword [ebp - 0x694]
lea eax, [ebp - 0x20c]
push ecx
push dword [ebp - 0x690]
lea edx, [ebp - 0x680]
push dword [ebp - 0x688]
lea ecx, [ebp - 0x40c]
push ebx
push eax
call fcn.0040ff10
add esp, 0x14
test eax, eax
je 0x4119bf
mov byte [0x5337d8], 0
cmp ebx, 0x14
jl 0x411943
push 0x10
call fcn.00416e66
mov ebx, eax
add esp, 4
mov dword [ebp - 0x684], ebx
push 0x10
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
call fcn.00416e66
mov esi, eax
add esp, 4
mov dword [ebp - 0x690], esi
push 0x10
mov dword [esi + 4], 0
mov dword [esi], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
call fcn.00416e66
mov edi, eax
add esp, 4
cmp dword [ebp - 0x694], 0x1d
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
jne 0x41151e
mov edx, 1
mov ecx, ebx
call fcn.00408b70
mov dword [ebx + 8], 0
cmp dword [ebp - 0x680], 0
mov dword [ebp - 0x68c], 0
jle 0x411578
push esi
mov edx, 8
mov ecx, ebx
call fcn.0040a040
mov eax, dword [ebp - 0x68c]
add esp, 4
mov ecx, edi
movzx edx, byte [ebp + eax - 0x40c]
call fcn.00408b70
push ebx
mov edx, edi
mov ecx, esi
call fcn.00408d80
mov eax, dword [ebp - 0x68c]
add esp, 4
inc eax
mov dword [ebp - 0x68c], eax
cmp eax, dword [ebp - 0x680]
jl 0x411531
mov eax, dword [0x5339d8]
mov esi, 0x5337d8
mov ebx, 6
test eax, eax
jne 0x4115b5
push 0x10
call fcn.00416e66
add esp, 4
mov dword [0x5339d8], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 0x684]
mov edx, eax
push 0
call fcn.00408a80
add esp, 4
test eax, eax
je 0x41182b
cmp dword [edi + 4], 4
mov ecx, 0x20
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x688], ecx
jle 0x4115f1
mov dword [edi], 4
mov dword [eax], 0
jmp 0x411627
push eax
call fcn.00416e4b
add esp, 4
mov dword [edi + 4], 4
mov dword [edi], 4
push 4
call fcn.00416e66
add esp, 4
mov dword [edi + 0xc], eax
push dword [edi]
push 0
push eax
call fcn.00414f00
mov ecx, dword [ebp - 0x688]
add esp, 0xc
xor edx, edx
nop dword [eax]
mov eax, dword [edi + 0xc]
lea edx, [edx + 1]
mov byte [edx + eax - 1], cl
shr ecx, 8
test ecx, ecx
jne 0x411630
mov ecx, dword [edi]
mov edx, dword [edi + 0xc]
dec ecx
add ecx, edx
cmp ecx, edx
jbe 0x41165a
nop dword [eax]
cmp byte [ecx], 0
jne 0x41165a
dec ecx
cmp ecx, edx
ja 0x411650
sub ecx, edx
lea eax, [ecx + 1]
mov dword [edi], eax
test eax, eax
je 0x41166d
test ecx, ecx
jne 0x411674
cmp byte [edx], cl
jne 0x411674
mov dword [edi + 8], 0
push dword [ebp - 0x690]
mov ecx, dword [ebp - 0x684]
mov edx, edi
call fcn.0040a3c0
mov ecx, dword [ebp - 0x690]
add esp, 4
call fcn.00408c10
mov ecx, dword [ebp - 0x684]
mov edx, 0xfffffffb
push edi
mov dword [ebp - 0x68c], eax
call fcn.0040a040
mov ecx, dword [edi]
xor edx, edx
mov eax, dword [ebp - 0x684]
add esp, 4
test ecx, ecx
cmovns edx, ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x688], edx
cmp edx, dword [eax + 4]
jge 0x4116d4
push edx
push 0
mov dword [eax], edx
push ecx
jmp 0x411705
push ecx
call fcn.00416e4b
mov eax, dword [ebp - 0x684]
add esp, 4
mov ecx, dword [ebp - 0x688]
push ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00416e66
mov ecx, dword [ebp - 0x684]
add esp, 4
push dword [ecx]
mov dword [ecx + 0xc], eax
push 0
push eax
call fcn.00414f00
mov ecx, dword [ebp - 0x684]
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [ecx + 8], eax
push dword [edi]
push dword [edi + 0xc]
push dword [ecx + 0xc]
call fcn.00415980
add esp, 0xc
cmp dword [ebp - 0x694], 0x1d
jne 0x411758
mov eax, dword [ebp - 0x68c]
mov al, byte [eax + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [esi], al
inc esi
mov eax, dword [0x5339d8]
sub ebx, 1
jne 0x411587
mov byte [esi], 0x2d
inc esi
jmp 0x411582
mov eax, dword [0x5339d8]
mov dword [ebp - 0x680], eax
test eax, eax
jne 0x411797
push 0x10
call fcn.00416e66
add esp, 4
mov dword [ebp - 0x680], eax
mov dword [0x5339d8], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
lea ecx, [esi + 1]
mov edx, eax
mov dword [ebp - 0x688], ecx
dec ebx
mov ecx, dword [ebp - 0x684]
push 0
call fcn.00408a80
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x68c]
jne 0x411806
cmp eax, 0x10
jge 0x4117db
mov al, byte [eax + 0x52d224]
mov byte [esi], al
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x680]
jmp 0x411587
mov al, byte [eax + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [esi], al
mov esi, dword [ebp - 0x688]
test ebx, ebx
jne 0x4117f6
mov byte [esi], 0x2d
mov ebx, 6
inc esi
mov eax, dword [ebp - 0x680]
mov byte [esi], 0x47
inc esi
dec ebx
jmp 0x411587
mov al, byte [eax + str.0123456789ABCDEFGHJKMNPQRTUVWXYZ]
mov byte [esi], al
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x680]
test ebx, ebx
jne 0x411587
mov byte [esi], 0x2d
inc esi
jmp 0x411582
cmp dword [ebp - 0x694], 0x1d
jne 0x411846
test ebx, ebx
jne 0x411841
mov byte [esi], 0x2d
mov ebx, 6
inc esi
mov byte [esi], 0x31
inc esi
dec ebx
cmp dword [ebp - 0x678], 0
je 0x41189e
test ebx, ebx
jne 0x41185c
mov byte [esi], 0x2d
mov ebx, 6
inc esi
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411865
sub ecx, edx
lea eax, [ebp - 0x20c]
lea ecx, [ebp + ecx - 0x20d]
cmp ecx, eax
jb 0x41189e
nop
mov al, byte [ecx]
dec ecx
mov byte [esi], al
inc esi
sub ebx, 1
jne 0x411894
mov byte [esi], 0x2d
mov ebx, 6
inc esi
lea eax, [ebp - 0x20c]
cmp ecx, eax
jae 0x411880
test ebx, ebx
jle 0x4118b0
push ebx
push 0x30
push esi
call fcn.00414f00
add esp, 0xc
add esi, ebx
mov byte [esi], 0
mov esi, 0x5337d8
push 0
push esi
call fcn.00414a00
dec eax
add esp, 8
cmp eax, esi
jbe 0x4118d6
mov cl, byte [eax]
mov dl, byte [esi]
mov byte [esi], cl
inc esi
mov byte [eax], dl
dec eax
cmp esi, eax
jb 0x4118c8
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4118e6
push eax
call fcn.00416e4b
add esp, 4
push edi
call fcn.00416e4b
mov ebx, dword [ebp - 0x690]
add esp, 4
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x411905
push eax
call fcn.00416e4b
add esp, 4
push ebx
call fcn.00416e4b
mov ebx, dword [ebp - 0x684]
add esp, 4
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x411924
push eax
call fcn.00416e4b
add esp, 4
push ebx
call fcn.00416e4b
add esp, 4
mov eax, 0x5337d8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00413dc9
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x680]
xor esi, esi
test ebx, ebx
jle 0x4119a9
nop
test esi, esi
jle 0x411973
mov edi, 0x5337d8
dec edi
nop word [eax + eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x411960
mov ax, word [0x52d264]
mov word [edi], ax
movzx eax, byte [ebp + esi - 0x40b]
push eax
movzx eax, byte [ebp + esi - 0x40c]
push eax
push str._02X_02X
push 0
push 0x5337d8
call fcn.00414a00
add esp, 8
push eax
call fcn.00408a10
add esi, 2
add esp, 0x10
cmp esi, ebx
jl 0x411950
mov eax, 0x5337d8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00413dc9
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
mov eax, 0x52d1bc
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413dc9
mov esp, ebp
pop ebp
ret