Function at 0x45b685
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2a0
push ebx
push esi
push edi
mov edi, ecx
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x1c], edi
call fcn.0043cd3b
mov esi, dword [0x47d098]
lea ecx, [ebp - 0x6c]
xor ebx, ebx
mov dword [ebp - 0x4c], 0x40bb44
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], ebx
call fcn.00413e10
lea ecx, [ebp - 0xe8]
call fcn.00413e10
lea ecx, [ebp - 0xd0]
call fcn.00413e10
lea ecx, [ebp - 0x140]
call fcn.004180a8
lea ecx, [ebp - 0x29c]
call fcn.0043d910
lea ecx, [ebp - 0x158]
call fcn.00413e10
lea ecx, [ebp - 0x170]
call fcn.00413e10
lea ecx, [ebp - 0x188]
call fcn.00413e10
lea ecx, [ebp - 0x254]
call fcn.00413e10
lea ecx, [ebp - 0x12c]
call fcn.004180a8
lea ecx, [ebp - 0x1e4]
call fcn.0043cd3b
mov eax, dword [0x47d0ac]
mov ecx, 0x40bb44
mov dword [ebp - 0xb0], eax
xor eax, eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0x118], ecx
movzx ecx, word [eax]
mov eax, dword [edi]
mov dword [ebp - 0x54], ecx
mov ecx, edi
mov dword [ebp - 0x104], esi
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x114], esi
mov esi, dword [edi + 0x20]
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xb4], 0x40bb7c
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xa0], ebx
mov byte [ebp - 6], bl
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x3c], ebx
call dword [eax + 0x3c]
movzx edi, ax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 8]
imul edi, eax
push ecx
push 0x401764
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x98], edi
call fcn.00413786
test al, al
je 0x45ca1b
push ecx
push 0x40c1fc
lea ecx, [ebp - 0x170]
call fcn.00413786
test al, al
je 0x45ca1b
push ecx
push 0x40c208
lea ecx, [ebp - 0x188]
call fcn.00413786
test al, al
je 0x45ca1b
push 0x18
pop ecx
call fcn.004143f5
test eax, eax
je 0x45b826
mov ecx, eax
call fcn.00413e10
mov esi, eax
jmp 0x45b828
mov esi, ebx
test esi, esi
je 0x45ca1b
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.004136e8
test al, al
je 0x45ca1b
push esi
xor edx, edx
lea ecx, [ebp - 0x3c]
call fcn.00458e90
test al, al
jne 0x45b889
push 0x9d3
push ecx
mov ecx, 0x40c1d8
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
push 3
push 1
push 0x43c
push dword [ebp + 0x20]
call fcn.00416d87
add esp, 0x20
jmp 0x45ca1b
mov esi, dword [ebp + 0x20]
mov ecx, esi
push 3
push ebx
push 0x437
mov eax, dword [esi]
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
pop ecx
pop ecx
xor ecx, ecx
call fcn.0045b4ee
test al, al
je 0x45ca1b
mov edi, dword [ebp - 0x3c]
mov ecx, edi
test edi, edi
je 0x45c9b7
mov eax, dword [ecx + 8]
mov edi, dword [edi]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x24], eax
call fcn.0041457e
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
mov eax, dword [ebp - 0x28]
mov byte [ebp - 5], bl
test eax, eax
je 0x45b957
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x138], ebx
test ecx, ecx
je 0x45b90d
call fcn.0041457e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x134], ebx
push eax
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x130], ebx
push dword [eax + 0x30]
push eax
push dword [eax + 0x20]
lea eax, [ebp - 0x140]
push eax
call fcn.0043cdb7
test al, al
je 0x45c90b
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x234]
call dword [eax + 8]
test al, al
je 0x45c8f3
lea ecx, [ebp - 0x23c]
jmp 0x45b971
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x45b96a
mov byte [ebp - 6], 0x10
jmp 0x45b974
mov ecx, dword [eax + 0x3c]
mov byte [ebp - 6], 0x20
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0043e2b5
test al, al
je 0x45c9ad
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
neg edx
sbb edx, edx
and edx, 2
mov eax, dword [ecx]
push edx
mov dword [ebp - 0xc], edx
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], cl
test eax, eax
je 0x45c842
mov edi, dword [ebp - 0xc]
mov cl, byte [eax]
test cl, cl
je 0x45c7fa
cmp cl, 0xe5
jne 0x45ba14
cmp byte [ebp - 5], 0
je 0x45c7dc
mov edx, dword [ebp + 0x28]
xor eax, eax
inc eax
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x44f
call dword [eax + 0xc]
push dword [ebp - 0x24]
push 0x401264
push esi
call fcn.00416ce1
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x30]
call fcn.00458ecb
jmp 0x45c7d6
mov al, byte [eax + 0xb]
and al, 0xf
cmp al, 0xf
jne 0x45ba33
cmp byte [ebp - 5], 0
jne 0x45c7dc
mov byte [ebp - 5], 1
mov dword [ebp - 0x30], edi
jmp 0x45c7dc
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043ceb6
cmp byte [ebp - 5], 0
je 0x45bb8a
lea ecx, [ebp - 0x94]
call fcn.00413e10
lea ecx, [ebp - 0x4c]
call fcn.0043d4d0
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0xd], al
lea edi, [ecx - 1]
cmp edi, dword [ebp - 0x30]
jb 0x45baf1
mov ecx, dword [ebp - 0x14]
push edi
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, eax
mov al, byte [ebp - 6]
mov byte [ebp - 0x10c], al
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x110], ecx
mov al, byte [ecx + 0xb]
and al, 0xf
cmp al, 0xf
jne 0x45bae8
movzx eax, byte [ecx]
movzx ecx, al
mov dword [ebp - 0x18], eax
and ecx, 0x3f
mov eax, dword [ebp - 0xc]
sub eax, edi
cmp ecx, eax
jne 0x45bb39
lea ecx, [ebp - 0x118]
call fcn.0043d4d0
cmp al, byte [ebp - 0xd]
jne 0x45bb39
lea ecx, [ebp - 0x118]
call fcn.004161da
test ax, ax
jne 0x45bb39
lea ecx, [ebp - 0x118]
call fcn.0043d506
test al, al
je 0x45bb39
test byte [ebp - 0x18], 0x40
jne 0x45baee
dec edi
cmp edi, dword [ebp - 0x30]
jae 0x45ba71
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xa0]
mov al, byte [edx + 0xb]
and al, 0xf
cmp al, 0xf
jne 0x45bb08
movzx eax, byte [edx]
and eax, 0x40
jmp 0x45bb0a
mov eax, ebx
mov edi, dword [ebp - 0x14]
test al, al
je 0x45bb3c
lea eax, [ebp - 0x94]
push eax
push ecx
mov ecx, edi
call fcn.0043d7dc
test al, al
je 0x45bb7d
lea ecx, [ebp - 0x94]
call fcn.0043d675
neg al
sbb al, al
inc al
je 0x45bb7d
jmp 0x45bb3c
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp + 0x28]
mov ecx, esi
mov dword [ebp - 0x2c], 1
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x44f
call dword [eax + 0xc]
push dword [ebp - 0x24]
push 0x401264
push esi
call fcn.00416ce1
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov ecx, edi
push dword [ebp - 0xc]
call fcn.00458ecb
mov byte [ebp - 5], bl
lea ecx, [ebp - 0x94]
call fcn.00413e5e
jmp 0x45bb8d
mov edi, dword [ebp - 0x14]
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043ceb6
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x24]
lea ecx, [ebp - 0x6c]
call fcn.004136e8
test al, al
je 0x45ca1b
cmp dword [ebp - 0x28], 0
je 0x45bbda
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00413bd4
test al, al
je 0x45ca1b
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
push dword [ebp - 0xc]
call fcn.0043d7dc
test al, al
je 0x45bbfe
cmp dword [ebp - 0xc4], 0
lea eax, [ebp - 0xd0]
jne 0x45bc04
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00413bd4
test al, al
je 0x45ca1b
cmp byte [ebp + 0x24], 0
je 0x45bc4c
mov eax, dword [ebp - 0x44]
mov al, byte [eax + 0xb]
test al, 8
je 0x45bc2b
and al, 0xf
cmp al, 0xf
jne 0x45bc4c
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13a0
call dword [eax + 0xc]
lea eax, [ebp - 0x6c]
push eax
push 0x401264
push esi
call fcn.00416ce1
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x35]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x6c]
push dword [ebp + 0x28]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0045cab7
test al, al
je 0x45ca1b
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
mov eax, dword [ebp - 0x44]
cmp byte [eax], 0xe5
jne 0x45bca0
cmp byte [ebp - 5], 0
je 0x45c7d9
mov ecx, edi
jmp 0x45ba04
mov al, byte [eax + 0xb]
test al, 8
je 0x45bcaf
and al, 0xf
cmp al, 0xf
mov al, 1
jne 0x45bcb1
mov al, bl
test al, al
jne 0x45c0a4
mov eax, dword [0x47d098]
lea ecx, [ebp - 0x94]
mov byte [ebp - 0xd], bl
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x7c], 0x40bb44
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ebx
call fcn.00413e10
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0xc]
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0xc]
call dword [eax + 8]
push 0xb
mov dword [ebp - 0x18], eax
mov edi, ebx
mov ecx, eax
pop edx
movzx eax, byte [ecx]
shl edi, 2
xor edi, eax
inc ecx
dec edx
jne 0x45bcfa
mov edx, dword [ebp - 0x18]
push 2
pop ecx
movzx eax, byte [edx]
shl edi, 2
xor edi, eax
inc edx
dec ecx
jne 0x45bd0c
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc]
lea ecx, [ebp - 0xb4]
push edi
call fcn.0043e35e
test al, al
je 0x45c955
mov eax, dword [ebp - 0x9c]
dec eax
mov dword [ebp - 0x9c], eax
je 0x45bf69
push dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x14]
push eax
push dword [ebp - 0xc]
call fcn.00458d85
test al, al
je 0x45bf69
movzx ecx, word [ebp - 0xa4]
mov esi, ebx
push 0x20
pop edx
sub edx, dword [ebp - 0xa4]
mov eax, edi
and eax, dword [ebp - 0xa6]
xor esi, eax
shr edi, cl
test dx, dx
jg 0x45bd76
mov dword [ebp - 0x18], esi
xor edx, edx
mov eax, dword [ebp - 0x18]
inc edx
mov esi, dword [ebp + 0x20]
movzx eax, ax
imul ecx, eax, 0xc
add ecx, dword [ebp - 0xac]
mov eax, dword [ecx]
cmp eax, edx
jb 0x45bdae
dec eax
mov dword [ecx], eax
mov edi, dword [ebp - 0x14]
mov ecx, edi
push dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0xd], dl
mov eax, dword [edi]
call dword [eax + 8]
mov edx, eax
lea ecx, [ebp - 0x20]
call fcn.00458def
push dword [ebp - 0xc]
test al, al
mov ecx, edi
mov eax, dword [edi]
je 0x45be69
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x70], cl
test eax, eax
jne 0x45be0a
push 0xffffffffffffffff
push 0x40c228
lea ecx, [ebp - 0x94]
call fcn.00413735
test al, al
jne 0x45be21
push 0xb38
jmp 0x45c95a
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0043ceb6
test al, al
je 0x45c932
mov edx, dword [ebp + 0x28]
mov ecx, esi
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13b2
call dword [eax + 0xc]
lea eax, [ebp - 0x94]
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0xe8]
push eax
push 0x40c244
push esi
call fcn.00416ce1
mov ecx, dword [0x47cbb0]
add esp, 0x14
call fcn.0045b4ee
jmp 0x45bce6
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x70], cl
test eax, eax
jne 0x45be99
push 0xffffffffffffffff
push 0x40c228
lea ecx, [ebp - 0x94]
call fcn.00413735
test al, al
jne 0x45beb0
push 0xb08
jmp 0x45c95a
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0043ceb6
test al, al
je 0x45c940
mov edx, dword [ebp + 0x28]
mov ecx, esi
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13b1
call dword [eax + 0xc]
lea eax, [ebp - 0x94]
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0xe8]
push eax
push 0x40c244
push esi
call fcn.00416ce1
add esp, 0x14
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0xe8]
push 0xffffffffffffffff
push ebx
push eax
call fcn.004136e8
test al, al
je 0x45c939
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x24]
lea ecx, [ebp - 0x6c]
call fcn.004136e8
test al, al
je 0x45c97f
cmp dword [ebp - 0x28], 0
je 0x45bf38
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00413bd4
test al, al
je 0x45c97f
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
push dword [ebp - 0xc]
call fcn.0043d7dc
test al, al
je 0x45c078
cmp dword [ebp - 0xc4], 0
je 0x45c078
lea eax, [ebp - 0xd0]
jmp 0x45c07e
mov al, byte [ebp - 0xd]
test al, al
je 0x45c08f
mov edi, dword [ebp - 0x14]
mov ecx, edi
push dword [ebp - 0xc]
mov eax, dword [edi]
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x70], cl
test eax, eax
jne 0x45bfae
push 0xffffffffffffffff
push 0x40c228
lea ecx, [ebp - 0x94]
call fcn.00413735
test al, al
jne 0x45bfc5
push 0xb4b
jmp 0x45c95a
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0043ceb6
test al, al
je 0x45c94e
mov edx, dword [ebp + 0x28]
mov ecx, esi
mov dword [ebp - 0x2c], 1
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13b2
call dword [eax + 0xc]
lea eax, [ebp - 0x94]
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0xe8]
push eax
push 0x40c244
push esi
call fcn.00416ce1
add esp, 0x14
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0xe8]
push 0xffffffffffffffff
push ebx
push eax
call fcn.004136e8
test al, al
je 0x45c947
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x24]
lea ecx, [ebp - 0x6c]
call fcn.004136e8
test al, al
je 0x45c97f
cmp dword [ebp - 0x28], 0
je 0x45c054
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00413bd4
test al, al
je 0x45c97f
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
push dword [ebp - 0xc]
call fcn.0043d7dc
test al, al
je 0x45c078
cmp dword [ebp - 0xc4], 0
lea eax, [ebp - 0xd0]
jne 0x45c07e
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00413bd4
test al, al
je 0x45c97f
lea ecx, [ebp - 0x94]
call fcn.00413e5e
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x7c], 0x40ca24
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
cmp byte [ebp - 0x35], 0
je 0x45c33c
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 1
je 0x45c0db
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x34]
mov ecx, dword [eax + 0x30]
call fcn.0041620b
mov edi, eax
mov dword [ebp - 0x20], edi
jmp 0x45c0e8
lea ecx, [ebp - 0x4c]
call fcn.004161da
mov edi, eax
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x28]
mov ecx, esi
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x40c
call dword [eax + 0xc]
push edi
lea eax, [ebp - 0x6c]
push eax
push 0x401768
push esi
call fcn.00416ce1
push dword [ebp - 0x64]
push dword [ebp - 0x180]
call dword [sym.imp.ntdll.dll__wcsicmp]
add esp, 0x18
neg eax
sbb al, al
inc al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
mov al, byte [eax + 0xb]
test al, 0x10
je 0x45c189
and al, 0xf
cmp al, 0xf
je 0x45c189
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13a1
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
cmp dword [ebp - 0x34], 0
pop ecx
pop ecx
je 0x45c174
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x30]
push dword [ecx + 0x2c]
push dword [ebp - 0x34]
call fcn.0043b977
jmp 0x45c33c
cmp byte [ebp - 5], 0
mov eax, dword [ebp - 0x44]
mov byte [eax], 0xe5
je 0x45c7d9
jmp 0x45ba01
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x50]
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0045d798
test al, al
je 0x45ca1b
cmp dword [ebp - 0x50], 0
mov ecx, esi
mov eax, dword [esi]
push 3
push ebx
je 0x45c26b
push 0x13a2
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
cmp byte [ebp - 0x18], 0
pop ecx
pop ecx
je 0x45c24a
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edx
movzx esi, word [eax]
xor eax, eax
cmp ax, si
jae 0x45c205
mov eax, dword [ebp + 8]
mov ecx, esi
add eax, 8
cmp dword [eax - 4], edi
jne 0x45c1f9
mov dword [eax - 4], edx
jmp 0x45c1ff
cmp dword [eax], edi
jne 0x45c1ff
mov dword [eax], edx
add eax, 0x34
dec ecx
jne 0x45c1ef
mov edi, dword [ebx + 0x30]
mov ecx, edi
push edx
call fcn.0041620b
cmp eax, dword [edi + 0x28]
jae 0x45c245
push dword [ebp - 0x20]
mov ecx, edi
call fcn.0041620b
cmp eax, dword [edi + 0x28]
jae 0x45c245
push dword [ebp - 0x20]
mov ecx, edi
call fcn.0041620b
push dword [ebp - 0x18]
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.0041620b
mov edi, dword [ebp - 0x20]
mov edx, eax
mov dword [ebp - 0x18], eax
jmp 0x45c1e0
mov esi, dword [ebp + 0x20]
xor ebx, ebx
cmp dword [ebp - 0x34], 0
push dword [ebp - 0x50]
je 0x45c25e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x30]
jmp 0x45c167
lea ecx, [ebp - 0x4c]
call fcn.0043b9d0
jmp 0x45c33c
push 0x13a3
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
cmp dword [ebp - 0x34], 0
pop ecx
pop ecx
je 0x45c31c
cmp byte [ebp - 0x18], 0
je 0x45c2ea
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov edi, dword [eax + 0x30]
mov eax, dword [ebp + 0xc]
movzx edx, word [eax]
mov dword [ebp - 0x18], edx
xor eax, eax
mov ecx, ebx
cmp ax, dx
jae 0x45c2cb
mov edx, dword [ebp + 8]
movzx eax, cx
imul eax, eax, 0x34
cmp dword [eax + edx + 8], esi
mov edx, dword [ebp - 0x18]
je 0x45c2c5
inc ecx
cmp cx, dx
jb 0x45c2ab
jmp 0x45c2cb
movzx eax, cx
mov dword [ebp - 0x54], eax
push esi
mov ecx, edi
call fcn.0041620b
cmp eax, dword [edi + 0x28]
jae 0x45c2e7
push esi
mov ecx, edi
call fcn.0041620b
mov edx, dword [ebp - 0x18]
mov esi, eax
jmp 0x45c2a2
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x30]
push dword [ecx + 0x2c]
push dword [ebp - 0x34]
call fcn.0043b977
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004161da
mov ecx, dword [edi + 0x30]
push eax
call fcn.0043c901
imul eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x1c], eax
jmp 0x45c33c
cmp byte [ebp - 5], 0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], ebx
mov byte [eax], 0xe5
je 0x45c33c
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
call fcn.00458ecb
mov byte [ebp - 5], bl
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
push dword [ebp + 0x28]
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x6c]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0xc]
push dword [ebp - 0x28]
push eax
call fcn.0045d32e
test al, al
je 0x45ca1b
mov ecx, dword [0x47cbb0]
call fcn.0045b4ee
mov edi, dword [ebp - 0x44]
mov al, byte [edi + 0xb]
test al, 0x10
je 0x45c5d9
and al, 0xf
cmp al, 0xf
je 0x45c5d9
lea ecx, [ebp - 0x4c]
call fcn.004161da
mov ecx, eax
mov dword [ebp - 0x18], ecx
cmp ecx, 2
jb 0x45c6c8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
cmp ecx, dword [eax + 0x24]
jae 0x45c6c8
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x124], ebx
test ecx, ecx
je 0x45c3dc
call fcn.0041457e
mov dword [ebp - 0x120], ebx
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1e4]
push dword [ebp - 0x18]
mov dword [ebp - 0x11c], ebx
push dword [eax + 0x30]
push eax
push dword [eax + 0x20]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043cdb7
test al, al
je 0x45c9a3
mov eax, dword [ebp - 0x1dc]
lea ecx, [ebp - 0x1dc]
call dword [eax + 8]
test al, al
je 0x45c9a3
cmp dword [ebp - 0x198], 0
jle 0x45c439
lea ecx, [ebp - 0x1dc]
call fcn.0043ce41
mov dword [ebp - 0x20], eax
jmp 0x45c43e
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov cl, byte [ebp - 6]
mov dword [ebp - 0x100], eax
mov byte [ebp - 0xfc], cl
test eax, eax
je 0x45ca1b
cmp dword [ebp - 0x198], 1
jle 0x45c474
lea ecx, [ebp - 0x1dc]
call fcn.0043ce41
mov cl, byte [ebp - 6]
lea edi, [eax + 0x20]
mov eax, dword [ebp - 0x20]
jmp 0x45c476
mov edi, ebx
mov dword [ebp - 0xf0], edi
mov byte [ebp - 0xec], cl
test edi, edi
je 0x45ca1b
push 0xb
push 0x40bb38
push eax
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x45c62b
push 0xb
push 0x40bb2c
push edi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x45c62b
mov eax, dword [ebp - 0x20]
mov al, byte [eax + 0xb]
test al, 0x10
je 0x45c62b
push 0xf
pop ecx
and al, cl
cmp al, cl
je 0x45c62b
mov al, byte [edi + 0xb]
test al, 0x10
je 0x45c62b
and al, cl
cmp al, cl
je 0x45c62b
lea ecx, [ebp - 0x108]
call fcn.004161da
cmp eax, dword [ebp - 0x18]
jne 0x45c517
lea ecx, [ebp - 0xf8]
call fcn.004161da
cmp eax, dword [ebp - 0x28]
jne 0x45c517
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x1c], ebx
jne 0x45c517
cmp dword [edi + 0x1c], ebx
je 0x45c58b
mov edx, dword [ebp + 0x28]
mov ecx, esi
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x13b0
call dword [eax + 0xc]
lea eax, [ebp - 0x6c]
push eax
push 0x401264
push esi
call fcn.00416ce1
add esp, 0xc
mov dword [ebp - 0x2c], 1
lea ecx, [ebp - 0x108]
push dword [ebp - 0x18]
call fcn.0043b9d0
push dword [ebp - 0x28]
lea ecx, [ebp - 0xf8]
call fcn.0043b9d0
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], ebx
mov dword [edi + 0x1c], ebx
je 0x45c58b
mov eax, dword [ebp - 0x1dc]
lea ecx, [ebp - 0x1dc]
call dword [eax + 0xc]
test al, al
je 0x45ca1b
push 0x18
pop ecx
call fcn.004143f5
test eax, eax
je 0x45c5a2
mov ecx, eax
call fcn.00413e10
mov edi, eax
jmp 0x45c5a4
mov edi, ebx
test edi, edi
je 0x45c999
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
call fcn.004136e8
test al, al
je 0x45c999
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x3c]
push edi
call fcn.00458e90
test al, al
je 0x45c98f
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x28], 0
jne 0x45c5fb
push dword [ebp - 0x168]
push dword [ebp - 0xe0]
call dword [sym.imp.ntdll.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x45c78f
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004161da
push eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x30]
call fcn.0043c901
mov cl, byte [edi + 0xb]
mov edx, eax
test cl, 2
je 0x45c761
mov ecx, dword [ebp + 0x14]
inc dword [ecx]
add dword [ecx + 4], edx
jmp 0x45c78f
mov edx, dword [ebp + 0x28]
mov ecx, esi
mov dword [ebp - 0x2c], 1
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x3e9
call dword [eax + 0xc]
lea eax, [ebp - 0x6c]
push eax
push 0x401264
push esi
call fcn.00416ce1
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
push 1
push ebx
push 0x3ea
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
mov eax, dword [esi]
pop ecx
pop ecx
push 1
mov ecx, esi
call dword [eax + 0x14]
test al, al
je 0x45c6ab
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
push ecx
push dword [ebp - 0x18]
and byte [edi + 0xb], 0xef
mov ecx, dword [eax + 0x30]
call fcn.0043c901
imul eax, dword [ebp - 0x98]
mov dword [edi + 0x1c], eax
jmp 0x45c5d9
push dword [ebp + 0x10]
lea ecx, [ebp - 0x4c]
call fcn.004161da
mov edx, dword [ebp - 0x1c]
mov ecx, eax
mov edx, dword [edx + 0x30]
call fcn.0045b471
jmp 0x45c174
push 0xb
push 0x40bb38
push edi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
je 0x45c7d9
push 0xb
push 0x40bb2c
push edi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
je 0x45c7d9
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x3e9
call dword [eax + 0xc]
lea eax, [ebp - 0x6c]
push eax
push 0x401264
push esi
call fcn.00416ce1
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
push 1
push ebx
push 0x3ea
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
mov eax, dword [esi]
pop ecx
pop ecx
push 1
mov ecx, esi
call dword [eax + 0x14]
test al, al
je 0x45c7d9
and byte [edi + 0xb], 0xef
cmp byte [ebp - 0x40], 0x20
jne 0x45c756
xor eax, eax
mov word [edi + 0x14], ax
xor eax, eax
mov word [edi + 0x1a], ax
mov dword [edi + 0x1c], ebx
jmp 0x45c7d9
test cl, 0x10
je 0x45c779
mov al, cl
and al, 0xf
cmp al, 0xf
je 0x45c779
mov ecx, dword [ebp + 0x14]
inc dword [ecx + 0x10]
add dword [ecx + 0x14], edx
jmp 0x45c78f
test cl, 8
je 0x45c786
and cl, 0xf
cmp cl, 0xf
jne 0x45c78f
mov eax, dword [ebp + 0x14]
inc dword [eax + 8]
add dword [eax + 0xc], edx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x30]
cmp dword [edi + 0x40], 0xffffffff
jne 0x45c7aa
cmp dword [edi + 0x20], ebx
je 0x45c7b1
mov ecx, edi
call fcn.0043c880
mov dword [edi + 0x40], eax
mov ecx, dword [edi + 0x40]
test ecx, ecx
jne 0x45c7b4
xor ecx, ecx
inc ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
add eax, dword [edx + 0xc]
add eax, dword [edx + 4]
xor edx, edx
imul eax, eax, 0x64
div ecx
mov ecx, eax
call fcn.0045b4ee
test al, al
je 0x45ca1b
mov byte [ebp - 5], bl
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
inc edi
push edi
mov dword [ebp - 0xc], edi
mov eax, dword [ecx]
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], cl
test eax, eax
jne 0x45b9b8
cmp byte [ebp - 5], 0
je 0x45c83f
mov edx, dword [ebp + 0x28]
mov ecx, esi
mov dword [ebp - 0x2c], 1
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x44f
call dword [eax + 0xc]
push dword [ebp - 0x24]
push 0x401264
push esi
call fcn.00416ce1
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.00458ecb
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
mov byte [ebp - 0xd], bl
mov eax, dword [ecx]
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov byte [ebp - 0x40], cl
test eax, eax
je 0x45c8ba
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
cmp byte [eax], 0
je 0x45c86b
mov byte [ebp - 0xd], 1
mov byte [eax], bl
mov eax, dword [esi]
inc edi
push edi
mov ecx, esi
call dword [eax + 8]
mov cl, byte [ebp - 6]
mov byte [ebp - 0x40], cl
test eax, eax
jne 0x45c860
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 0xd], al
je 0x45c8ba
mov edx, dword [ebp + 0x28]
mov ecx, esi
call fcn.00458d52
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x432
call dword [eax + 0xc]
push dword [ebp - 0x24]
push 0x401264
push esi
call fcn.00416ce1
add esp, 0xc
mov dword [ebp - 0x2c], 1
cmp dword [ebp - 0x28], 0
je 0x45c8dd
cmp dword [ebp + 0x18], 0
je 0x45c8dd
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x234]
call dword [eax + 0xc]
test al, al
je 0x45c9c3
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x45b8ba
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x45b8ba
push 0x401054
push 0x7e2
push esi
call fcn.00416cfc
add esp, 0xc
jmp 0x45ca1b
push 0x9eb
push ecx
mov ecx, 0x40c1d8
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
push 3
push 1
push 0x43c
push esi
jmp 0x45b87c
push 0xb3d
jmp 0x45c95a
push 0xb17
jmp 0x45c95a
push 0xb0d
jmp 0x45c95a
push 0xb5c
jmp 0x45c95a
push 0xb50
jmp 0x45c95a
push 0xaf5
push ecx
mov ecx, 0x40c1d8
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
push 3
push 1
push 0x43c
push esi
call fcn.00416d87
add esp, 0x20
lea ecx, [ebp - 0x94]
call fcn.00413e5e
jmp 0x45ca1b
push 0xc8e
jmp 0x45c910
push 0xc89
jmp 0x45c910
push 0xc3d
jmp 0x45c910
push 0xa02
jmp 0x45c910
push 0x64
pop ecx
call fcn.0045b4ee
test al, al
jne 0x45c9d1
mov byte [0x47d15c], bl
mov dword [0x47d160], ebx
jmp 0x45ca1b
mov eax, dword [esi]
mov ecx, esi
push 3
push ebx
push 0x3ff
call dword [eax + 0xc]
push 0x401054
push esi
call fcn.00416ce1
mov eax, dword [ebp + 0xc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x54]
mov word [eax], cx
mov eax, dword [ebp - 0x2c]
mov byte [0x47d15c], bl
mov dword [0x47d160], ebx
test eax, eax
je 0x45ca19
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 3
je 0x45ca19
mov dword [eax + 0x18], 1
mov bl, 1
lea ecx, [ebp - 0xb4]
call fcn.0043e298
lea ecx, [ebp - 0x1e4]
call fcn.0043cd93
lea ecx, [ebp - 0x12c]
call fcn.004180f3
lea ecx, [ebp - 0x254]
call fcn.00413e5e
lea ecx, [ebp - 0x188]
call fcn.00413e5e
lea ecx, [ebp - 0x170]
call fcn.00413e5e
lea ecx, [ebp - 0x158]
call fcn.00413e5e
lea ecx, [ebp - 0x29c]
call fcn.0043d977
lea ecx, [ebp - 0x140]
call fcn.004180f3
lea ecx, [ebp - 0xd0]
call fcn.00413e5e
lea ecx, [ebp - 0xe8]
call fcn.00413e5e
lea ecx, [ebp - 0x6c]
call fcn.00413e5e
lea ecx, [ebp - 0x23c]
call fcn.0043cd93
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x24