Function at 0x458840
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4aa7b8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x914
push ebx
push ebp
push esi
push edi
mov ebp, ecx
xor esi, esi
lea esp, [esp]
mov ecx, dword [ebp + 0xc18]
lea eax, [esp + 0x6c]
push eax
push ebp
push ecx
mov ecx, 0x4efeb1
call fcn.00462b40
cmp eax, 0xffffffff
jne 0x4588ab
mov ecx, dword [esp + 0x6c]
cmp ecx, 0x2746
jne 0x45889c
xor eax, eax
jmp 0x4588ab
cmp ecx, esi
je 0x4588ab
mov cl, byte [ebp + 4]
test cl, cl
je 0x458996
mov cl, byte [ebp + 4]
test cl, cl
jne 0x4589a4
cmp eax, esi
jg 0x458870
lea ecx, [ebp + 0x7f4]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
call fcn.00450ca0
mov edi, eax
cmp edi, esi
je 0x458a03
jmp 0x4588e0
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x4589bc
mov ecx, dword [esp + 0x2c]
mov eax, esi
or eax, ecx
jne 0x458900
call fcn.0044e9a0
mov esi, eax
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
push ecx
xor edx, edx
mov dl, byte [edi + 0x13]
push esi
push 1
lea ebx, [edi + 0xd]
mov eax, ebx
push edx
mov edx, dword [eax]
mov ax, word [eax + 4]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [edi + 8]
mov word [ecx + 4], ax
mov eax, dword [edi + 4]
xor ecx, ecx
mov cl, byte [edi + 0xc]
push ecx
mov ecx, dword [edi]
push edx
mov edx, dword [edi + 0x24]
push eax
push ecx
push edx
mov ecx, ebp
call fcn.00453b10
test al, al
jne 0x458950
mov eax, dword [edi + 0x24]
push eax
call fcn.0049ab38
add esp, 4
mov eax, dword [edi + 0x14]
test eax, eax
je 0x4589e1
push 0x4c4c3c
mov ecx, ebx
call fcn.0044eef0
test al, al
je 0x4589e1
mov ecx, dword [ebx]
mov dx, word [ebx + 4]
push 1
push 1
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov word [eax + 4], dx
call fcn.004539a0
test eax, eax
je 0x4589e1
mov ecx, dword [edi + 0x14]
mov dword [eax + 0xcb0], ecx
jmp 0x4589e1
mov edx, dword [ebp]
push esi
push esi
mov ecx, ebp
mov byte [ebp + 4], 1
call dword [edx + 0x24]
xor al, al
mov ecx, dword [esp + 0x924]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dl, byte [edi + 0xc]
add edi, 0xd
mov ecx, dword [edi]
push edx
mov dx, word [edi + 4]
push 1
push 0
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov word [eax + 4], dx
call fcn.00456520
lea edi, [ebp + 0x7f4]
mov ecx, edi
call fcn.00450cc0
mov ecx, edi
call fcn.00450ca0
mov edi, eax
test edi, edi
jne 0x4588e0
mov dword [esp + 0x28], esi
lea esi, [ebp + 0x3c4]
mov ecx, esi
call fcn.00450ae0
test eax, eax
mov dword [esp + 0x3c], eax
mov edi, eax
je 0x458b7e
mov edi, edi
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
jne 0x458a49
call fcn.0044e9a0
push 0
push 0x3e8
push edx
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0049a4e0
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
cmp dword [edi + 8], ecx
jae 0x458b5d
cmp byte [edi + 0xc], 6
push 0x4c4c3c
mov ecx, edi
sete byte [esp + 0x14]
call fcn.0044eec0
mov bl, al
mov al, byte [esp + 0x10]
dec bl
neg bl
sbb bl, bl
inc bl
test al, al
jne 0x458abd
test bl, bl
jne 0x458abd
inc byte [edi + 0xc]
mov edx, dword [esp + 0x20]
add edx, 0x3e8
mov dword [edi + 8], edx
xor eax, eax
mov byte [esp + 0x24], 0x18
mov ax, word [edi + 4]
mov ecx, dword [edi]
lea edx, [esp + 0x24]
push eax
mov eax, dword [ebp + 0xc18]
push ecx
push 3
push edx
push eax
mov ecx, 0x4efeb1
call fcn.00462c50
jmp 0x458b5d
mov eax, dword [edi + 0x10]
test eax, eax
je 0x458ad4
push eax
call fcn.0049ab38
add esp, 4
mov dword [edi + 0x10], 0
mov al, byte [esp + 0x10]
test al, al
je 0x458b2a
test bl, bl
jne 0x458b2a
cmp dword [edi + 0x118], 1
jne 0x458b2a
push 1
call fcn.0044fd50
mov ebx, eax
mov ecx, dword [ebx + 0x10]
mov byte [ecx], 0x1d
mov dword [ebx + 0xc], 8
mov edx, dword [edi]
mov dword [ebx + 2], edx
mov ax, word [edi + 4]
lea esi, [ebp + 0xdd0]
mov word [ebx + 6], ax
add esp, 4
mov ecx, esi
mov word [ebx], 0xffff
call fcn.00450e00
mov ecx, esi
mov dword [eax], ebx
call fcn.00450e40
cmp edi, dword [esp + 0x3c]
lea esi, [ebp + 0x3c4]
jne 0x458b4a
mov ecx, esi
call fcn.00450b00
mov ecx, esi
call fcn.00450ae0
mov dword [esp + 0x3c], eax
jmp 0x458b64
mov ecx, dword [0x4c4c3c]
mov dword [edi], ecx
mov dx, word [0x4c4c40]
mov word [edi + 4], dx
mov ecx, esi
call fcn.00450ae0
mov edi, eax
test edi, edi
jne 0x458a20
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x458b7e
push eax
mov ecx, esi
call fcn.0044dd10
xor esi, esi
xor ebx, ebx
cmp word [ebp + 8], si
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jbe 0x459ad4
jmp 0x458bb0
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
jmp 0x458bb0
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x33c]
imul eax, eax, 0xcb8
lea edi, [eax + ecx]
cmp byte [edi], 0
mov dword [esp + 0x44], edi
je 0x459abf
mov edx, dword [edi + 1]
mov dword [esp + 0x14], edx
mov ax, word [edi + 5]
mov ecx, ebx
or ecx, esi
mov word [esp + 0x18], ax
jne 0x458c09
call fcn.0044e9a0
push 0
mov esi, edx
push 0x3e8
mov ebx, eax
push esi
push ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
call fcn.0049a4e0
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x780]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jbe 0x458c83
sub ecx, eax
cmp ecx, 0x1388
jbe 0x458c83
cmp dword [edi + 0xcb0], 8
jne 0x458c83
lea ecx, [edi + 0x10]
push 0
call fcn.0045df70
mov ecx, dword [eax + 0xa0]
test ecx, ecx
jne 0x458c83
push esi
push ebx
push 0
push 0
sub esp, 8
mov eax, esp
push 0
lea edx, [edi + 1]
mov ecx, dword [edx]
mov dx, word [edx + 4]
push 8
mov dword [eax], ecx
push 3
mov word [eax + 4], dx
push 8
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
mov byte [esp + 0x3c], 0x17
call fcn.00453b10
lea ecx, [edi + 0x10]
call fcn.0045b0b0
add eax, dword [esp + 0x20]
mov dword [edi + 0x780], eax
mov eax, dword [ebp + 0xc0c]
lea edx, [ebp + 0x3b8]
push edx
push esi
push ebx
push eax
mov eax, dword [esp + 0x24]
sub esp, 8
mov edx, esp
mov dword [edx], eax
mov ax, word [esp + 0x30]
mov word [edx + 4], ax
mov edx, dword [ebp + 0xc18]
lea ecx, [edi + 0x10]
push edx
call fcn.00460220
lea ecx, [edi + 0x10]
call fcn.0045b2d0
test al, al
jne 0x458d27
mov eax, dword [edi + 0xcb0]
cmp eax, 1
je 0x458cd2
cmp eax, 2
jne 0x458cde
lea ecx, [edi + 0x10]
call fcn.0045d440
test al, al
je 0x458d27
cmp dword [edi + 0xcb0], 3
jne 0x458cf3
lea ecx, [edi + 0x10]
call fcn.0045d4e0
test al, al
je 0x458d27
mov eax, dword [edi + 0xcb0]
cmp eax, 4
je 0x458d0d
cmp eax, 5
je 0x458d0d
cmp eax, 6
je 0x458d0d
cmp eax, 7
jne 0x458d6b
mov eax, dword [edi + 0x898]
mov esi, dword [esp + 0x20]
cmp esi, eax
jbe 0x458d6f
mov ecx, esi
sub ecx, eax
cmp ecx, 0x2710
jbe 0x458d6f
mov eax, dword [edi + 0xcb0]
cmp eax, 8
je 0x458d45
cmp eax, 4
je 0x458d45
cmp eax, 1
je 0x458d45
cmp eax, 3
jne 0x459a9e
push 1
call fcn.0044fd50
mov edi, dword [edi + 0xcb0]
add esp, 4
cmp edi, 4
mov ebx, eax
jne 0x459a56
mov eax, dword [ebx + 0x10]
mov byte [eax], 0x1d
jmp 0x459a69
mov esi, dword [esp + 0x20]
lea ebx, [edi + 0x10]
mov ecx, ebx
call fcn.0045b2c0
test al, al
je 0x458dc9
push 1
call fcn.0044fd50
mov edi, eax
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 8
mov byte [edx], 0x26
mov eax, dword [esp + 0x18]
mov dx, word [esp + 0x28]
mov dword [edi + 2], eax
mov cx, word [esp + 0x1c]
mov word [edi + 6], cx
lea esi, [ebp + 0xdd0]
add esp, 4
mov ecx, esi
mov word [edi], dx
call fcn.00450e00
mov ecx, esi
mov dword [eax], edi
call fcn.00450e40
jmp 0x459abf
mov eax, dword [edi + 0xcb0]
cmp eax, 1
je 0x458dd9
cmp eax, 2
jne 0x458e0a
mov edx, dword [edi + 0x780]
mov ecx, esi
sub ecx, edx
cmp ecx, 0x4e20
jbe 0x458e0a
mov eax, dword [esp + 0x14]
mov cx, word [esp + 0x18]
push 0
push 1
push 0
sub esp, 8
mov edx, esp
mov dword [edx], eax
mov word [edx + 4], cx
jmp 0x459ab8
cmp eax, 8
jne 0x458ec8
mov cl, byte [edi + 0xcb6]
test cl, cl
jne 0x458e80
mov ecx, dword [edi + 0x898]
mov edx, esi
sub edx, ecx
cmp edx, 0x7530
jbe 0x458e80
mov edx, dword [esp + 0x14]
mov eax, dword [ebp]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov dx, word [esp + 0x20]
mov word [ecx + 4], dx
mov ecx, ebp
call dword [eax + 0xb8]
push eax
push str.Kicking__s_because_they_didnt_logon_to_the_game.
call fcn.0048c8d0
mov ecx, dword [esp + 0x1c]
mov dx, word [esp + 0x20]
add esp, 8
push 0
push 1
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov word [eax + 4], dx
call fcn.00455b50
jmp 0x459abf
cmp eax, 8
jne 0x458ec8
cmp esi, dword [edi + 0x77c]
jbe 0x458ec8
mov al, byte [ebp + 6]
test al, al
jne 0x458e9f
cmp word [edi + 0x778], 0xffff
jne 0x458ec8
push 1
add esi, 0x1388
mov dword [edi + 0x77c], esi
mov ecx, dword [esp + 0x18]
mov dx, word [esp + 0x1c]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov word [eax + 4], dx
call fcn.00456400
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.0045be70
mov esi, eax
test esi, esi
mov dword [esp + 0x4c], esi
jle 0x459abf
mov eax, dword [ebp + 0x7dc]
test eax, eax
je 0x459046
push 0x240
lea ecx, [esp + 0x17c]
call fcn.0044d8d0
lea ecx, [esp + 0x178]
mov dword [esp + 0x92c], 0
call fcn.0044d9d0
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 7]
sar eax, 3
push eax
push ecx
lea ecx, [esp + 0x180]
mov dword [esp + 0x3c], eax
call fcn.0044e070
mov ecx, dword [esp + 0x178]
mov ebx, dword [ebp + 0x7e8]
lea eax, [ecx + 7]
sar eax, 3
add ebx, eax
test ecx, ecx
mov dword [ebp + 0x7e8], ebx
mov dword [esp + 0x40], ecx
jbe 0x45902b
push eax
call fcn.0049aac1
mov ecx, dword [esp + 0x17c]
mov esi, dword [esp + 0x188]
add ecx, 7
sar ecx, 3
mov edx, ecx
shr ecx, 2
mov ebx, eax
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add esp, 4
lea ecx, [esp + 0x178]
call fcn.0044d9d0
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x178]
push eax
push ecx
mov ecx, dword [ebp + 0x7dc]
push ebx
call fcn.0044e1c0
mov edx, dword [esp + 0x178]
mov edi, dword [ebp + 0x7f0]
add edx, 7
sar edx, 3
add edi, edx
push ebx
mov dword [ebp + 0x7f0], edi
call fcn.0049ab38
mov ebx, dword [esp + 0x17c]
mov eax, dword [esp + 0x38]
add ebx, 7
sar ebx, 3
add esp, 4
cmp ebx, eax
jle 0x459006
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x458ff9
push eax
call fcn.0049ab38
add esp, 4
push ebx
call fcn.0049aac1
add esp, 4
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x184]
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
jmp 0x45902d
xor ebx, ebx
lea ecx, [esp + 0x178]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45904c
lea ebx, [esi + 7]
sar ebx, 3
mov edx, dword [edi + 0xcb0]
cmp edx, 6
mov eax, dword [esp + 0x1c]
mov cl, byte [eax]
jne 0x45912f
cmp cl, 0xb
jne 0x459086
mov edx, dword [esp + 0x14]
push ebx
push eax
mov ax, word [esp + 0x20]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
push edi
mov ecx, ebp
call fcn.00457ed0
jmp 0x4590fe
cmp cl, 0xc
jne 0x4590ac
mov edx, dword [esp + 0x14]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov dx, word [esp + 0x20]
push ebx
mov word [ecx + 4], dx
push eax
mov ecx, ebp
call fcn.00450820
test al, al
jne 0x4590fe
mov ecx, dword [esp + 0x14]
mov dx, word [esp + 0x18]
push 0
push 1
push 0
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov word [eax + 4], dx
call fcn.00456520
mov esi, dword [ebp]
lea ecx, [edi + 0x10]
call fcn.0045b0b0
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [ebp]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov dx, word [esp + 0x24]
mov word [ecx + 4], dx
mov ecx, ebp
call dword [eax + 0xb8]
push eax
mov ecx, ebp
call dword [esi + 0x64]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45910f
push eax
call fcn.0049ab38
add esp, 4
lea edx, [esp + 0x1c]
push edx
lea ecx, [edi + 0x10]
call fcn.0045be70
mov esi, eax
test esi, esi
mov dword [esp + 0x4c], esi
jg 0x458ee2
jmp 0x459abf
cmp cl, 0xb
jne 0x459159
cmp edx, 8
je 0x459102
mov ecx, dword [esp + 0x14]
mov dx, word [esp + 0x18]
push ebx
push eax
sub esp, 8
mov eax, esp
mov dword [eax], ecx
push edi
mov ecx, ebp
mov word [eax + 4], dx
call fcn.00457ed0
jmp 0x4590fe
cmp cl, 0x1e
jne 0x459286
cmp ebx, 7
jne 0x459286
cmp edx, 5
je 0x45918c
cmp edx, ebx
je 0x45918c
lea eax, [ebp + 0x234]
push eax
lea ecx, [esp + 0x18]
call fcn.0044eec0
test al, al
je 0x4590fe
push 1
mov dword [edi + 0xcb0], 8
mov edx, dword [esp + 0x18]
mov ax, word [esp + 0x1c]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00456400
mov edx, dword [esp + 0x14]
mov ax, word [esp + 0x18]
push 1
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00456290
mov ecx, dword [esp + 0x1c]
push 0
push 7
push ecx
lea ecx, [esp + 0x5e4]
call fcn.0044d930
push 8
lea ecx, [esp + 0x5dc]
mov dword [esp + 0x930], 1
call fcn.0044dd00
push 1
push 0x20
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x5e4]
call fcn.0044da70
push 1
push 0x10
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x5e4]
call fcn.0044da70
mov ecx, dword [esp + 0x58]
mov dx, word [esp + 0x5c]
mov dword [edi + 7], ecx
mov word [edi + 0xb], dx
mov eax, dword [esp + 0x1c]
push eax
push 7
call fcn.0044fd70
mov dword [eax + 0xc], esi
mov ecx, dword [esp + 0x1c]
mov dword [eax + 2], ecx
mov dx, word [esp + 0x20]
mov cx, word [esp + 0x2c]
add esp, 8
mov word [eax + 6], dx
mov word [eax], cx
push eax
mov ecx, ebp
call fcn.00452280
lea ecx, [esp + 0x5d8]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45910f
cmp cl, 9
jne 0x4593d2
cmp ebx, 9
jne 0x4593d2
push 0
push ebx
push eax
lea ecx, [esp + 0x6fc]
call fcn.0044d930
push 8
lea ecx, [esp + 0x6f4]
mov dword [esp + 0x930], 2
call fcn.0044dd00
push 1
push 0x20
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x6fc]
call fcn.0044da70
push 1
push 0x20
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x6fc]
call fcn.0044da70
call fcn.0044e9a0
push 0
push 0x3e8
push edx
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0049a4e0
mov edx, dword [esp + 0x48]
mov ecx, eax
cmp ecx, edx
mov dword [esp + 0x20], ecx
jbe 0x459318
sub eax, edx
jmp 0x45931a
xor eax, eax
mov edx, dword [edi + 0x774]
movzx esi, word [edi + edx*8 + 0x74c]
test esi, esi
lea edx, [edi + edx*8 + 0x74c]
jbe 0x459341
lea esi, [esi + esi*2]
cmp eax, esi
jae 0x4593a5
cmp eax, 0x4b0
jae 0x4593a5
mov word [edx], ax
mov edx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x64]
shr edx, 1
sub ecx, edx
mov edx, dword [edi + 0x774]
mov dword [edi + edx*8 + 0x750], ecx
mov cx, word [edi + 0x778]
cmp cx, 0xffff
je 0x459374
movzx ecx, cx
cmp ecx, eax
jle 0x45937b
mov word [edi + 0x778], ax
movzx edx, ax
push edx
lea ecx, [edi + 0x10]
call fcn.0045c580
mov ecx, dword [edi + 0x774]
inc ecx
mov eax, ecx
cmp eax, 5
mov dword [edi + 0x774], ecx
jne 0x4593a5
mov dword [edi + 0x774], 0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4593b6
push eax
call fcn.0049ab38
add esp, 4
lea ecx, [esp + 0x6f0]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45910f
cmp cl, 6
jne 0x459517
cmp ebx, 5
jne 0x459517
push 0
push ebx
push eax
lea ecx, [esp + 0x814]
call fcn.0044d930
push 8
lea ecx, [esp + 0x80c]
mov dword [esp + 0x930], 3
call fcn.0044dd00
push 1
push 0x20
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x814]
call fcn.0044da70
lea ecx, [esp + 0x3a8]
call fcn.0044d8a0
push 1
push 8
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x3b4]
mov byte [esp + 0x938], 4
mov byte [esp + 0x1c], 9
call fcn.0044df40
mov edx, dword [esp + 0x68]
push 1
push 0x20
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x3b4]
mov dword [esp + 0x40], edx
call fcn.0044df40
call fcn.0044e940
mov esi, eax
mov dword [esp + 0x20], esi
call fcn.0044e9a0
push 1
push 0x20
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x3b4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], esi
call fcn.0044df40
mov eax, dword [esp + 0x14]
mov cx, word [esp + 0x18]
push 0
push esi
push 0
push 0
sub esp, 8
mov edx, esp
push 0
mov dword [edx], eax
mov eax, dword [esp + 0x3d0]
push 6
mov word [edx + 4], cx
mov edx, dword [esp + 0x3c8]
push 0
push edx
push eax
mov ecx, ebp
call fcn.00453b10
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4594e7
push eax
call fcn.0049ab38
add esp, 4
lea ecx, [esp + 0x3a8]
mov byte [esp + 0x92c], 3
call fcn.0044d9b0
lea ecx, [esp + 0x808]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45910f
cmp cl, 0x20
jne 0x45952b
mov dword [edi + 0xcb0], 3
jmp 0x4590fe
cmp cl, 0x11
je 0x459106
cmp cl, 0xa
jne 0x45955b
mov edx, dword [esp + 0x14]
mov ax, word [esp + 0x18]
push 1
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00456290
jmp 0x4590fe
cmp cl, 0x29
jne 0x4595b6
lea ecx, [edi + 0x784]
call fcn.0044d9d0
mov edx, dword [esp + 0x1c]
lea ecx, [ebx - 1]
push ecx
inc edx
push edx
lea ecx, [edi + 0x784]
call fcn.0044dff0
mov eax, dword [esp + 0x1c]
push eax
push ebx
call fcn.0044fd70
mov dword [eax + 0xc], esi
mov ecx, dword [esp + 0x1c]
mov dword [eax + 2], ecx
mov dx, word [esp + 0x20]
mov cx, word [esp + 0x2c]
add esp, 8
mov word [eax + 6], dx
mov word [eax], cx
push eax
mov ecx, ebp
call fcn.00452280
jmp 0x45910f
cmp cl, 0xf
jne 0x4595ce
cmp ebx, 0x39
jne 0x4595ce
push eax
push edi
mov ecx, ebp
call fcn.00458440
jmp 0x4590fe
cmp cl, 0x10
jne 0x4597cd
cmp ebx, 0x35
jne 0x4597cd
lea ecx, [esp + 0xa0]
call fcn.00462930
lea ecx, [esp + 0xa0]
mov dword [esp + 0x92c], 5
call fcn.00460b00
push 4
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xa8]
call fcn.00462750
push 2
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xa8]
call fcn.00462750
push 0x14
lea ecx, [ebp + 0xd9c]
push ecx
lea ecx, [esp + 0xa8]
call fcn.00462750
lea ecx, [esp + 0xa0]
call fcn.00462820
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0xa0]
inc edi
call fcn.00462920
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x4596dd
lea ecx, [esp + 0xa0]
call fcn.00460b00
push 4
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xa8]
call fcn.00462750
push 2
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0xa8]
call fcn.00462750
push 0x14
lea edx, [ebp + 0xdb0]
push edx
lea ecx, [esp + 0xa8]
call fcn.00462750
lea ecx, [esp + 0xa0]
call fcn.00462820
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0xa0]
inc edi
call fcn.00462920
mov esi, eax
mov ecx, 5
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x4597a0
mov esi, dword [esp + 0x1c]
add esi, 0x15
mov ecx, 8
lea edi, [esp + 0x158]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x15c]
push edx
lea ecx, [ebp + 0xc3c]
call fcn.00458050
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x81]
sub esi, ecx
mov dword [esp + 0x34], esi
lea esi, [esp + 0x71]
sub esi, ecx
mov dword [esp + 0x40], esi
lea edi, [esp + 0x80]
lea edx, [esp + 0x70]
mov esi, 0xfffffffe
sub edi, ecx
sub edx, ecx
lea eax, [ecx + 2]
sub esi, ecx
lea ecx, [eax + esi]
mov bl, byte [esp + ecx + 0x80]
xor bl, byte [eax - 1]
add eax, 4
mov byte [esp + ecx + 0x70], bl
mov bl, byte [esp + ecx + 0x81]
xor bl, byte [eax - 4]
mov byte [esp + ecx + 0x71], bl
mov bl, byte [eax - 3]
mov cl, byte [eax + edi - 4]
xor cl, bl
mov bl, byte [eax - 2]
mov byte [eax + edx - 4], cl
mov ecx, dword [esp + 0x34]
mov cl, byte [eax + ecx - 4]
xor cl, bl
mov ebx, dword [esp + 0x40]
mov byte [eax + ebx - 4], cl
lea ecx, [eax + esi]
cmp ecx, 0x10
jl 0x459741
mov eax, dword [esp + 0x44]
push 1
lea edx, [esp + 0x74]
push edx
push eax
mov ecx, ebp
call fcn.00455910
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0049ab38
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x92c], 0xffffffff
call fcn.00462940
mov edi, dword [esp + 0x44]
jmp 0x45910f
cmp cl, 0x17
jne 0x4597db
cmp ebx, 1
je 0x459106
cmp cl, 0x22
jne 0x459a48
cmp ebx, 0xd
jne 0x459a48
cmp edx, 5
je 0x459805
cmp edx, 4
je 0x459805
mov cl, byte [ebp + 0xdc4]
test cl, cl
jne 0x459805
xor cl, cl
jmp 0x459807
mov cl, 1
cmp edx, 5
sete bl
test cl, cl
mov byte [esp + 0x3b], bl
push 0
je 0x459a26
push 0xd
push eax
lea ecx, [esp + 0x4cc]
call fcn.0044d930
push 8
lea ecx, [esp + 0x4c4]
mov dword [esp + 0x930], 6
call fcn.0044dd00
push 1
push 0x20
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x4cc]
call fcn.0044da70
push 1
push 0x10
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x4cc]
call fcn.0044da70
push 1
push 0x10
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x4cc]
call fcn.0044da70
test bl, bl
mov edx, dword [esp + 0x50]
mov ax, word [esp + 0x54]
mov dword [edi + 7], edx
mov word [edi + 0xb], ax
mov dword [edi + 0xcb0], 8
jne 0x4598bd
mov al, byte [edi + 0x8ac]
test al, al
je 0x4598b3
lea ecx, [edi + 0x89c]
push ecx
jmp 0x4598b5
push 0
lea ecx, [edi + 0x10]
call fcn.0045b080
mov edx, dword [esp + 0x1c]
push edx
push 0xd
call fcn.0044fd70
mov esi, eax
mov dword [esi + 0xc], 0x68
mov eax, dword [esp + 0x1c]
add esp, 8
mov dword [esi + 2], eax
mov cx, word [esp + 0x18]
push 1
mov word [esi + 6], cx
mov eax, dword [esp + 0x18]
mov cx, word [esp + 0x1c]
sub esp, 8
mov edx, esp
mov dword [edx], eax
mov word [edx + 4], cx
mov ecx, ebp
call fcn.004538f0
push esi
mov ecx, ebp
mov word [esi], ax
call fcn.00452280
push 7
lea ecx, [esp + 0x294]
call fcn.0044d8d0
push 1
push 8
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x29c]
mov byte [esp + 0x938], 7
mov byte [esp + 0x1c], 0x1e
call fcn.0044df40
mov eax, dword [esp + 0x14]
push 1
push 0x20
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x29c]
mov dword [esp + 0x40], eax
call fcn.0044df40
mov edx, dword [esp + 0x18]
push 1
push 0x10
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x29c]
mov dword [esp + 0x6c], edx
call fcn.0044df40
mov esi, dword [esp + 0x290]
mov ebx, dword [esp + 0x29c]
call fcn.0044e940
mov edx, dword [esp + 0x14]
push 0
push eax
mov ax, word [esp + 0x20]
push 0
push 0
sub esp, 8
mov ecx, esp
push 0
push 8
push 0
mov dword [ecx], edx
push esi
mov word [ecx + 4], ax
push ebx
mov ecx, ebp
call fcn.00453b10
mov al, byte [esp + 0x3b]
test al, al
jne 0x4599f6
mov edx, dword [esp + 0x14]
mov ax, word [esp + 0x18]
push 1
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00456400
mov edx, dword [esp + 0x14]
mov ax, word [esp + 0x18]
push 1
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00456290
lea ecx, [esp + 0x290]
mov byte [esp + 0x92c], 6
call fcn.0044d9b0
lea ecx, [esp + 0x4c0]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45910f
mov edx, dword [esp + 0x18]
mov ax, word [esp + 0x1c]
push 1
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, ebp
call fcn.00455b50
jmp 0x4590fe
cmp cl, 0x14
jb 0x459106
jmp 0x459584
cmp edi, 8
jne 0x459a63
mov ecx, dword [ebx + 0x10]
mov byte [ecx], 0x21
jmp 0x459a69
mov edx, dword [ebx + 0x10]
mov byte [edx], 0x20
mov dx, word [esp + 0x24]
mov dword [ebx + 0xc], 8
mov eax, dword [esp + 0x14]
mov dword [ebx + 2], eax
mov cx, word [esp + 0x18]
mov word [ebx + 6], cx
lea esi, [ebp + 0xdd0]
mov ecx, esi
mov word [ebx], dx
call fcn.00450e00
mov ecx, esi
mov dword [eax], ebx
call fcn.00450e40
mov ecx, dword [esp + 0x14]
mov dx, word [esp + 0x18]
push 0
push 1
push 0
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov word [eax + 4], dx
mov ecx, ebp
call fcn.00456520
mov eax, dword [esp + 0x24]
movzx ecx, word [ebp + 8]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jb 0x458b9e
mov ecx, dword [esp + 0x924]
pop edi
mov al, 1
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret