Function at 0x458990
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4aa728
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 0x4589fb
mov ecx, dword [esp + 0x6c]
cmp ecx, 0x2746
jne 0x4589ec
xor eax, eax
jmp 0x4589fb
cmp ecx, esi
je 0x4589fb
mov cl, byte [ebp + 4]
test cl, cl
je 0x458ae6
mov cl, byte [ebp + 4]
test cl, cl
jne 0x458af4
cmp eax, esi
jg 0x4589c0
lea ecx, [ebp + 0x7f4]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
call fcn.00450d30
mov edi, eax
cmp edi, esi
je 0x458b53
jmp 0x458a30
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x458b0c
mov ecx, dword [esp + 0x2c]
mov eax, esi
or eax, ecx
jne 0x458a50
call fcn.0044ea30
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.00453c60
test al, al
jne 0x458aa0
mov eax, dword [edi + 0x24]
push eax
call fcn.0049aaa8
add esp, 4
mov eax, dword [edi + 0x14]
test eax, eax
je 0x458b31
push 0x4c4c3c
mov ecx, ebx
call fcn.0044ef80
test al, al
je 0x458b31
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.00453af0
test eax, eax
je 0x458b31
mov ecx, dword [edi + 0x14]
mov dword [eax + 0xcb0], ecx
jmp 0x458b31
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.00456670
lea edi, [ebp + 0x7f4]
mov ecx, edi
call fcn.00450d50
mov ecx, edi
call fcn.00450d30
mov edi, eax
test edi, edi
jne 0x458a30
mov dword [esp + 0x28], esi
lea esi, [ebp + 0x3c4]
mov ecx, esi
call fcn.00450b70
test eax, eax
mov dword [esp + 0x3c], eax
mov edi, eax
je 0x458cce
mov edi, edi
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
jne 0x458b99
call fcn.0044ea30
push 0
push 0x3e8
push edx
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0049a450
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
cmp dword [edi + 8], ecx
jae 0x458cad
cmp byte [edi + 0xc], 6
push 0x4c4c3c
mov ecx, edi
sete byte [esp + 0x14]
call fcn.0044ef50
mov bl, al
mov al, byte [esp + 0x10]
dec bl
neg bl
sbb bl, bl
inc bl
test al, al
jne 0x458c0d
test bl, bl
jne 0x458c0d
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 0x458cad
mov eax, dword [edi + 0x10]
test eax, eax
je 0x458c24
push eax
call fcn.0049aaa8
add esp, 4
mov dword [edi + 0x10], 0
mov al, byte [esp + 0x10]
test al, al
je 0x458c7a
test bl, bl
jne 0x458c7a
cmp dword [edi + 0x118], 1
jne 0x458c7a
push 1
call fcn.0044fde0
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.00450e90
mov ecx, esi
mov dword [eax], ebx
call fcn.00450ed0
cmp edi, dword [esp + 0x3c]
lea esi, [ebp + 0x3c4]
jne 0x458c9a
mov ecx, esi
call fcn.00450b90
mov ecx, esi
call fcn.00450b70
mov dword [esp + 0x3c], eax
jmp 0x458cb4
mov ecx, dword [0x4c4c3c]
mov dword [edi], ecx
mov dx, word [0x4c4c40]
mov word [edi + 4], dx
mov ecx, esi
call fcn.00450b70
mov edi, eax
test edi, edi
jne 0x458b70
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x458cce
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 0x459c24
jmp 0x458d00
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
jmp 0x458d00
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 0x459c0f
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 0x458d59
call fcn.0044ea30
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.0049a450
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x780]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jbe 0x458dd3
sub ecx, eax
cmp ecx, 0x1388
jbe 0x458dd3
cmp dword [edi + 0xcb0], 8
jne 0x458dd3
lea ecx, [edi + 0x10]
push 0
call fcn.0045df70
mov ecx, dword [eax + 0xa0]
test ecx, ecx
jne 0x458dd3
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.00453c60
lea ecx, [edi + 0x10]
call fcn.0045b200
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.0045b420
test al, al
jne 0x458e77
mov eax, dword [edi + 0xcb0]
cmp eax, 1
je 0x458e22
cmp eax, 2
jne 0x458e2e
lea ecx, [edi + 0x10]
call fcn.0045d440
test al, al
je 0x458e77
cmp dword [edi + 0xcb0], 3
jne 0x458e43
lea ecx, [edi + 0x10]
call fcn.0045d4e0
test al, al
je 0x458e77
mov eax, dword [edi + 0xcb0]
cmp eax, 4
je 0x458e5d
cmp eax, 5
je 0x458e5d
cmp eax, 6
je 0x458e5d
cmp eax, 7
jne 0x458ebb
mov eax, dword [edi + 0x898]
mov esi, dword [esp + 0x20]
cmp esi, eax
jbe 0x458ebf
mov ecx, esi
sub ecx, eax
cmp ecx, 0x2710
jbe 0x458ebf
mov eax, dword [edi + 0xcb0]
cmp eax, 8
je 0x458e95
cmp eax, 4
je 0x458e95
cmp eax, 1
je 0x458e95
cmp eax, 3
jne 0x459bee
push 1
call fcn.0044fde0
mov edi, dword [edi + 0xcb0]
add esp, 4
cmp edi, 4
mov ebx, eax
jne 0x459ba6
mov eax, dword [ebx + 0x10]
mov byte [eax], 0x1d
jmp 0x459bb9
mov esi, dword [esp + 0x20]
lea ebx, [edi + 0x10]
mov ecx, ebx
call fcn.0045b410
test al, al
je 0x458f19
push 1
call fcn.0044fde0
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.00450e90
mov ecx, esi
mov dword [eax], edi
call fcn.00450ed0
jmp 0x459c0f
mov eax, dword [edi + 0xcb0]
cmp eax, 1
je 0x458f29
cmp eax, 2
jne 0x458f5a
mov edx, dword [edi + 0x780]
mov ecx, esi
sub ecx, edx
cmp ecx, 0x4e20
jbe 0x458f5a
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 0x459c08
cmp eax, 8
jne 0x459018
mov cl, byte [edi + 0xcb6]
test cl, cl
jne 0x458fd0
mov ecx, dword [edi + 0x898]
mov edx, esi
sub edx, ecx
cmp edx, 0x7530
jbe 0x458fd0
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.00455ca0
jmp 0x459c0f
cmp eax, 8
jne 0x459018
cmp esi, dword [edi + 0x77c]
jbe 0x459018
mov al, byte [ebp + 6]
test al, al
jne 0x458fef
cmp word [edi + 0x778], 0xffff
jne 0x459018
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.00456550
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.0045be60
mov esi, eax
test esi, esi
mov dword [esp + 0x4c], esi
jle 0x459c0f
mov eax, dword [ebp + 0x7dc]
test eax, eax
je 0x459196
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 0x45917b
push eax
call fcn.0049aa31
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.0049aaa8
mov ebx, dword [esp + 0x17c]
mov eax, dword [esp + 0x38]
add ebx, 7
sar ebx, 3
add esp, 4
cmp ebx, eax
jle 0x459156
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x459149
push eax
call fcn.0049aaa8
add esp, 4
push ebx
call fcn.0049aa31
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 0x45917d
xor ebx, ebx
lea ecx, [esp + 0x178]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45919c
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 0x45927f
cmp cl, 0xb
jne 0x4591d6
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.00458020
jmp 0x45924e
cmp cl, 0xc
jne 0x4591fc
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.004508b0
test al, al
jne 0x45924e
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.00456670
mov esi, dword [ebp]
lea ecx, [edi + 0x10]
call fcn.0045b200
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 0x45925f
push eax
call fcn.0049aaa8
add esp, 4
lea edx, [esp + 0x1c]
push edx
lea ecx, [edi + 0x10]
call fcn.0045be60
mov esi, eax
test esi, esi
mov dword [esp + 0x4c], esi
jg 0x459032
jmp 0x459c0f
cmp cl, 0xb
jne 0x4592a9
cmp edx, 8
je 0x459252
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.00458020
jmp 0x45924e
cmp cl, 0x1e
jne 0x4593d6
cmp ebx, 7
jne 0x4593d6
cmp edx, 5
je 0x4592dc
cmp edx, ebx
je 0x4592dc
lea eax, [ebp + 0x234]
push eax
lea ecx, [esp + 0x18]
call fcn.0044ef50
test al, al
je 0x45924e
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.00456550
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.004563e0
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.0044fe00
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.004523d0
lea ecx, [esp + 0x5d8]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45925f
cmp cl, 9
jne 0x459522
cmp ebx, 9
jne 0x459522
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.0044ea30
push 0
push 0x3e8
push edx
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0049a450
mov edx, dword [esp + 0x48]
mov ecx, eax
cmp ecx, edx
mov dword [esp + 0x20], ecx
jbe 0x459468
sub eax, edx
jmp 0x45946a
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 0x459491
lea esi, [esi + esi*2]
cmp eax, esi
jae 0x4594f5
cmp eax, 0x4b0
jae 0x4594f5
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 0x4594c4
movzx ecx, cx
cmp ecx, eax
jle 0x4594cb
mov word [edi + 0x778], ax
movzx edx, ax
push edx
lea ecx, [edi + 0x10]
call fcn.0045c570
mov ecx, dword [edi + 0x774]
inc ecx
mov eax, ecx
cmp eax, 5
mov dword [edi + 0x774], ecx
jne 0x4594f5
mov dword [edi + 0x774], 0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x459506
push eax
call fcn.0049aaa8
add esp, 4
lea ecx, [esp + 0x6f0]
mov dword [esp + 0x92c], 0xffffffff
call fcn.0044d9b0
jmp 0x45925f
cmp cl, 6
jne 0x459667
cmp ebx, 5
jne 0x459667
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.0044e9d0
mov esi, eax
mov dword [esp + 0x20], esi
call fcn.0044ea30
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.00453c60
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x459637
push eax
call fcn.0049aaa8
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 0x45925f
cmp cl, 0x20
jne 0x45967b
mov dword [edi + 0xcb0], 3
jmp 0x45924e
cmp cl, 0x11
je 0x459256
cmp cl, 0xa
jne 0x4596ab
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.004563e0
jmp 0x45924e
cmp cl, 0x29
jne 0x459706
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.0044fe00
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.004523d0
jmp 0x45925f
cmp cl, 0xf
jne 0x45971e
cmp ebx, 0x39
jne 0x45971e
push eax
push edi
mov ecx, ebp
call fcn.00458590
jmp 0x45924e
cmp cl, 0x10
jne 0x45991d
cmp ebx, 0x35
jne 0x45991d
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 0x45982d
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 0x4598f0
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.004581a0
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 0x459891
mov eax, dword [esp + 0x44]
push 1
lea edx, [esp + 0x74]
push edx
push eax
mov ecx, ebp
call fcn.00455a60
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0049aaa8
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x92c], 0xffffffff
call fcn.00462940
mov edi, dword [esp + 0x44]
jmp 0x45925f
cmp cl, 0x17
jne 0x45992b
cmp ebx, 1
je 0x459256
cmp cl, 0x22
jne 0x459b98
cmp ebx, 0xd
jne 0x459b98
cmp edx, 5
je 0x459955
cmp edx, 4
je 0x459955
mov cl, byte [ebp + 0xdc4]
test cl, cl
jne 0x459955
xor cl, cl
jmp 0x459957
mov cl, 1
cmp edx, 5
sete bl
test cl, cl
mov byte [esp + 0x3b], bl
push 0
je 0x459b76
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 0x459a0d
mov al, byte [edi + 0x8ac]
test al, al
je 0x459a03
lea ecx, [edi + 0x89c]
push ecx
jmp 0x459a05
push 0
lea ecx, [edi + 0x10]
call fcn.0045b1d0
mov edx, dword [esp + 0x1c]
push edx
push 0xd
call fcn.0044fe00
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.00453a40
push esi
mov ecx, ebp
mov word [esi], ax
call fcn.004523d0
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.0044e9d0
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.00453c60
mov al, byte [esp + 0x3b]
test al, al
jne 0x459b46
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.00456550
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.004563e0
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 0x45925f
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.00455ca0
jmp 0x45924e
cmp cl, 0x14
jb 0x459256
jmp 0x4596d4
cmp edi, 8
jne 0x459bb3
mov ecx, dword [ebx + 0x10]
mov byte [ecx], 0x21
jmp 0x459bb9
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.00450e90
mov ecx, esi
mov dword [eax], ebx
call fcn.00450ed0
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.00456670
mov eax, dword [esp + 0x24]
movzx ecx, word [ebp + 8]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jb 0x458cee
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