Function at 0x59d752
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc90
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + 0x120]
test esi, esi
jne 0x59d772
xor eax, eax
jmp 0x5a0e5e
mov edx, dword [esi + 0x255]
and edx, 0xf000
mov dword [ebp - 0x18], edx
mov ecx, dword [esi + 0x255]
and ecx, 0xff0
sar ecx, 4
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x255]
and eax, 0xf
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
cmp dword [esi + 0x108], 0
jle 0x59e16c
cmp dword [ebp - 0x18], 0x9000
je 0x59d7c5
cmp dword [ebp - 0x18], 0xd000
jne 0x59d7cc
mov dword [ebp - 0x20], 0x10
cmp dword [ebp - 0x18], 0xd000
jne 0x59d7f1
mov eax, dword [esi + 0x375]
mov dword [0x4e9ea0], eax
mov edx, dword [esi + 0x379]
mov dword [0x4e9ea4], edx
jmp 0x59d879
mov ecx, dword [esi + 0x37d]
mov dword [0x4e9ea0], ecx
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x1c]
imul dword [esi + 0x108]
mov dword [0x4e9ea4], eax
mov edx, dword [esi + 0x379]
cmp edx, dword [0x4e9ea4]
jae 0x59d828
mov ecx, dword [esi + 0x379]
mov dword [0x4e9ea4], ecx
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4e9ea0]
jae 0x59d846
xor edx, edx
mov dword [0x4e9ea4], edx
jmp 0x59d879
mov ecx, dword [esi + 0x375]
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
add ecx, dword [esi + 0x379]
cmp ecx, eax
jae 0x59d879
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
sub edx, dword [0x4e9ea0]
mov dword [0x4e9ea4], edx
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [0x4ea81c], ecx
cmp dword [ebp - 0x18], 0x9000
mov dword [0x4ea820], eax
mov dword [0x4eab50], edx
jne 0x59d8ca
test byte [esi + 0x257], 1
jne 0x59d8ca
movsx ecx, word [esi + 0x23f]
mov dword [0x4eab70], ecx
cmp dword [0x4eab70], 0
jl 0x59d8c1
cmp dword [0x4eab70], 5
jl 0x59d8d2
xor eax, eax
mov dword [0x4eab70], eax
jmp 0x59d8d2
xor edx, edx
mov dword [0x4eab70], edx
cmp dword [0x4b9f88], 0
je 0x59d8f5
mov ecx, dword [0x4e9ea4]
cmp ecx, dword [0x4b9f8c]
ja 0x59d8f5
cmp dword [0x4b9f8c], 0x10000
jbe 0x59d940
cmp dword [0x4b9f88], 0
je 0x59d919
mov eax, dword [0x4b9f88]
push eax
call fcn.00605100
xor edx, edx
xor ecx, ecx
mov dword [0x4b9f88], edx
mov dword [0x4b9f8c], ecx
mov eax, dword [0x4e9ea4]
push eax
push 0
call fcn.006050fa
mov dword [0x4b9f88], eax
cmp dword [0x4b9f88], 0
je 0x59d940
mov edx, dword [0x4e9ea4]
mov dword [0x4b9f8c], edx
cmp dword [0x4b9f90], 0
je 0x59d987
mov ecx, dword [0x4b9f94]
cmp ecx, dword [0x4e9ea4]
jb 0x59d96c
cmp dword [0x4b9f94], 0x10000
ja 0x59d96c
call fcn.005e1a02
test eax, eax
jne 0x59d987
mov eax, dword [0x4b9f90]
push eax
call fcn.00605100
xor edx, edx
xor ecx, ecx
mov dword [0x4b9f90], edx
mov dword [0x4b9f94], ecx
cmp dword [0x4b9f90], 0
jne 0x59d9d4
cmp dword [ebp - 0x18], 0x9000
jne 0x59d9d4
cmp dword [esi + 0x26d], 2
jne 0x59d9d4
call fcn.005e1a02
dec eax
jle 0x59d9d4
mov eax, dword [0x4e9ea4]
shl eax, 2
push eax
push 0
call fcn.006050fa
mov dword [0x4b9f90], eax
cmp dword [0x4b9f90], 0
je 0x59d9d4
mov edx, dword [0x4e9ea4]
mov dword [0x4b9f94], edx
cmp dword [esi + 0x3a5], 0
jne 0x59d9e8
push 0
push esi
call fcn.0059cdc6
add esp, 8
xor ecx, ecx
mov dword [0x4eab4c], ecx
test byte [esi + 0x257], 1
je 0x59da26
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [esi + 0x3a5]
add edx, dword [0x4e9ea0]
sub edx, dword [esi + 0x375]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call fcn.005f953a
add esp, 0xc
jmp 0x59db86
cmp dword [esi + 0x3a1], 0
jne 0x59db64
push 3
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [0x4e9ea0]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call fcn.005b7316
add esp, 0x10
mov dword [0x4e9ea4], eax
mov eax, dword [0x4e9ea0]
push eax
push 0
call fcn.005b3e8a
add esp, 8
mov dword [0x4eab50], eax
cmp dword [ebp - 0x18], 0x8000
je 0x59da86
cmp dword [ebp - 0x18], 0xb000
je 0x59da86
cmp dword [ebp - 0x18], 0xc000
jne 0x59dae0
mov edx, dword [esi + 0x375]
mov dword [0x4eab5c], edx
mov dword [0x4eab58], edx
mov eax, dword [esi + 0x375]
push eax
call fcn.005b7a52
pop ecx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x59dad3
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
cmp eax, dword [esi + 0x375]
jne 0x59dad3
mov edx, dword [ebp - 0x48]
test byte [edx + 0xb], 8
je 0x59dad3
mov dword [0x4eab54], 1
jmp 0x59db86
xor ecx, ecx
mov dword [0x4eab54], ecx
jmp 0x59db86
cmp dword [ebp - 0x18], 0x9000
jne 0x59db86
cmp dword [esi + 0x251], 0
je 0x59db86
mov eax, dword [0x4e9ea0]
push eax
call fcn.005b3e22
pop ecx
mov dword [0x4eab4c], eax
lea edx, [ebp - 0x34]
push edx
mov ecx, dword [0x4e9ea0]
push ecx
call fcn.005b3f0a
add esp, 8
mov dword [0x4ea81c], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [0x4e9ea4]
jae 0x59db36
xor edx, edx
mov dword [0x4ea81c], edx
lea ecx, [ebp - 0x38]
mov eax, dword [0x4e9ea0]
push ecx
push 0
push eax
call fcn.00570bd6
add esp, 0xc
mov dword [0x4ea820], eax
mov edx, dword [ebp - 0x38]
cmp edx, dword [0x4e9ea4]
jae 0x59db86
xor ecx, ecx
mov dword [0x4ea820], ecx
jmp 0x59db86
mov eax, dword [0x4e9ea4]
push eax
mov edx, dword [esi + 0x3a1]
add edx, dword [0x4e9ea0]
push edx
mov ecx, dword [0x4b9f88]
push ecx
call fcn.005f953a
add esp, 0xc
cmp dword [0x4b9f90], 0
je 0x59dbbd
cmp dword [ebp - 0x18], 0x9000
jne 0x59dbbd
cmp dword [esi + 0x26d], 2
jne 0x59dbbd
mov eax, dword [0x4b9f90]
push eax
mov edx, dword [0x4b9f94]
push edx
mov ecx, dword [0x4e9ea0]
push ecx
call fcn.005e1f96
add esp, 0xc
xor eax, eax
mov dword [esi + 0x108], eax
mov edx, dword [esi + 0x37d]
mov dword [0x4ea810], edx
mov dword [0x4e9ea8], edx
mov dword [0x4e9eac], 0xffffffff
cmp dword [esi + 0x3a1], 0
jne 0x59dc07
cmp dword [esi + 0x251], 0
je 0x59dc07
mov eax, dword [esi + 0x251]
push eax
call fcn.005ce982
pop ecx
mov dword [0x4eab48], eax
jmp 0x59dc0f
xor ecx, ecx
mov dword [0x4eab48], ecx
xor eax, eax
cmp dword [ebp - 0x18], 0x8000
mov dword [0x4eab74], eax
je 0x59dc35
cmp dword [ebp - 0x18], 0xb000
je 0x59dc35
cmp dword [ebp - 0x18], 0xc000
jne 0x59dd30
cmp dword [0x4dcc50], 0
je 0x59dd30
cmp dword [0x4eab48], 0
je 0x59dd30
mov edx, dword [0x4eab48]
cmp dword [edx + 0x482], 0
je 0x59dd30
mov ecx, dword [0x4eab48]
push 1
mov edx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
push eax
push 0
mov ecx, dword [edx + 0x318]
push ecx
push 0x4ea824
call fcn.00563dee
add esp, 0x14
cmp dword [0x4e275c], 0
je 0x59dd3b
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x318]
push edx
call fcn.005743e6
pop ecx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x59dd3b
mov ecx, dword [0x4eab48]
mov edx, dword [0x4eab48]
mov eax, dword [ecx + 0x30c]
cmp eax, dword [edx + 0x308]
jb 0x59dd3b
mov ecx, dword [ebp - 0x30]
push ecx
push 0x4dc8cd
call fcn.005ab51a
add esp, 8
mov dword [ebp - 0x50], eax
test eax, eax
je 0x59dd3b
mov edx, dword [0x4eab48]
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx + 0x318]
mov edx, dword [eax + 0xc]
add edx, dword [ebp - 0x30]
cmp ecx, edx
jbe 0x59dd3b
mov ecx, dword [0x4eab48]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x318]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x30]
cmp eax, ecx
ja 0x59dd3b
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x30c]
mov dword [0x4eab74], edx
jmp 0x59dd3b
push 0x4ea824
call fcn.00563d9e
pop ecx
cmp dword [ebp - 0x18], 0x8000
je 0x59dd56
cmp dword [ebp - 0x18], 0xb000
je 0x59dd56
cmp dword [ebp - 0x18], 0xc000
jne 0x59ddcc
cmp dword [0x4eab48], 0
je 0x59ddcc
mov ecx, dword [0x4eab48]
cmp dword [ecx + 0x10], 0
je 0x59ddcc
mov eax, dword [0x4eab48]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov dword [ebp - 4], ecx
mov dword [0x4eab78], edx
push 3
mov eax, dword [0x4eab78]
push 4
push eax
push 0x4eab78
call fcn.005b7316
add esp, 0x10
cmp eax, 4
je 0x59dda4
mov dword [0x4eab78], 0xffffffff
cmp dword [0x4eab78], 0xffffffff
je 0x59ddd6
mov edx, dword [0x4eab78]
add edx, 4
cmp edx, dword [0x4e9ea0]
jae 0x59ddd6
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x200
jl 0x59dd7e
jmp 0x59ddd6
mov dword [0x4eab78], 0xffffffff
xor ecx, ecx
mov dword [0x4eab64], ecx
mov dword [0x4eab60], ecx
cmp dword [ebp - 0x18], 0x9000
jne 0x59e16c
cmp dword [0x4d91b0], 0
je 0x59e16c
mov eax, dword [esi + 0x385]
cmp eax, dword [esi + 0x375]
jb 0x59e16c
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
cmp edx, dword [esi + 0x385]
jbe 0x59e16c
mov eax, dword [esi + 0x389]
cmp eax, dword [esi + 0x385]
jbe 0x59e16c
mov edx, dword [esi + 0x385]
push edx
call fcn.005b7a52
pop ecx
mov dword [ebp - 0x48], eax
test eax, eax
je 0x59e16c
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
sub edx, dword [esi + 0x385]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x10
jbe 0x59de74
mov dword [ebp - 0x28], 0x10
push 3
mov ecx, dword [ebp - 0x28]
push ecx
mov eax, dword [esi + 0x385]
push eax
lea edx, [ebp - 0x70]
push edx
call fcn.005b7316
add esp, 0x10
cmp eax, dword [ebp - 0x28]
jne 0x59e16c
push 0
mov ecx, dword [esi + 0x385]
push ecx
call fcn.005b3f0a
add esp, 8
test eax, eax
je 0x59df0e
xor edx, edx
mov dl, byte [eax]
and edx, 0x1f
cmp edx, 4
jne 0x59df0e
mov eax, dword [esi + 0x375]
cmp eax, dword [ebp - 0x70]
ja 0x59e16c
mov ecx, dword [esi + 0x375]
add ecx, dword [esi + 0x379]
cmp ecx, dword [ebp - 0x70]
jbe 0x59e16c
mov eax, dword [ebp - 0x70]
cmp eax, dword [esi + 0x385]
je 0x59e16c
mov dword [0x4eab6c], 1
mov edx, dword [esi + 0x385]
mov dword [0x4eab60], edx
mov ecx, dword [ebp - 0x70]
mov dword [0x4eab64], ecx
jmp 0x59e16c
cmp dword [0x4d91b4], 0
je 0x59e072
cmp dword [0x4eab4c], 0
je 0x59e072
test eax, eax
je 0x59e072
xor edx, edx
mov dl, byte [eax]
and edx, 0x1f
cmp edx, 0x1e
jne 0x59e072
mov eax, dword [0x4eab4c]
mov ecx, dword [esi + 0x385]
sub ecx, dword [eax + 0xc]
push ecx
mov eax, dword [0x4eab4c]
push eax
call fcn.005d520a
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jl 0x59e16c
mov edx, dword [esi + 0x385]
mov dword [0x4eab68], edx
mov dword [0x4eab64], edx
mov dword [0x4eab60], edx
jmp 0x59e04e
mov ecx, dword [ebp - 4]
mov ebx, dword [edx + 0x421]
mov eax, dword [edx + 0xc]
mov edx, dword [esi + 0x385]
lea ecx, [ecx + ecx*8]
sub edx, eax
mov ecx, dword [ebx + ecx + 5]
cmp ecx, edx
jne 0x59e063
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
movzx edx, byte [ecx + edx]
cmp edx, 3
je 0x59e04b
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
mov ecx, dword [0x4eab60]
sub ecx, eax
cmp edx, ecx
jae 0x59e00b
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
add edx, eax
mov dword [0x4eab60], edx
jmp 0x59e04b
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
mov ecx, dword [0x4eab64]
sub ecx, eax
cmp edx, ecx
jbe 0x59e04b
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov ecx, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov edx, dword [ecx + edx + 1]
add edx, eax
mov dword [0x4eab64], edx
inc dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov eax, dword [edx + 0x425]
cmp eax, dword [ebp - 4]
jg 0x59df87
mov dword [0x4eab6c], 2
jmp 0x59e16c
cmp dword [esi + 0x251], 0
je 0x59e0ac
cmp dword [esi + 0x3a9], 0
jle 0x59e0ac
mov ecx, dword [esi + 0x3a9]
push ecx
push 6
push 0x4e9eb0
push eax
mov eax, dword [esi + 0x385]
push eax
mov edx, dword [ebp - 0x28]
push edx
lea ecx, [ebp - 0x70]
push ecx
call fcn.0056bf52
add esp, 0x1c
jmp 0x59e0d2
mov edx, dword [esi + 0x251]
push edx
push 5
push 0x4e9eb0
push eax
mov eax, dword [esi + 0x385]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
lea eax, [ebp - 0x70]
push eax
call fcn.0056bf52
add esp, 0x1c
and dword [0x4ea4b4], 0xf0
cmp dword [0x4ea4b4], 0x50
je 0x59e0ee
cmp dword [0x4ea4e4], 0
jle 0x59e0fa
mov dword [0x4eab6c], 1
jmp 0x59e102
xor edx, edx
mov dword [0x4eab6c], edx
cmp dword [0x4ea4b4], 0x50
je 0x59e126
cmp dword [0x4ea4b4], 0x60
jne 0x59e16c
cmp dword [0x4ea4e4], 0
jg 0x59e126
cmp dword [0x4d91b8], 0
je 0x59e16c
mov ecx, dword [0x4ea4e0]
cmp ecx, dword [esi + 0x375]
jb 0x59e16c
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4ea4e0]
jbe 0x59e16c
mov edx, dword [0x4ea4e0]
cmp edx, dword [esi + 0x385]
je 0x59e16c
mov ecx, dword [esi + 0x385]
mov dword [0x4eab60], ecx
mov eax, dword [0x4ea4e0]
mov dword [0x4eab64], eax
mov edx, dword [0x4e9eac]
cmp edx, dword [esi + 0x241]
je 0x59e3da
cmp dword [ebp - 0x18], 0x9000
jne 0x59e2ed
mov ecx, dword [0x4ea810]
mov dword [0x4e9ea8], ecx
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x59e2d3
cmp dword [esi + 0x251], 0
je 0x59e24a
cmp dword [esi + 0x3a9], 0
jle 0x59e24a
cmp dword [esi + 0x3a1], 0
jne 0x59e24a
mov ecx, dword [0x4eab70]
mov edx, dword [esi + 0x3a9]
shl ecx, 0x10
push edx
or ecx, 6
cmp dword [0x4ea81c], 0
push ecx
push 0x4e9eb0
jne 0x59e1f7
xor eax, eax
jmp 0x59e208
mov eax, dword [0x4ea81c]
add eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
push eax
mov edx, dword [0x4e9ea8]
push edx
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov edx, dword [0x4b9f88]
add edx, dword [0x4e9ea8]
mov eax, dword [0x4e9ea4]
sub eax, ecx
sub edx, dword [0x4e9ea0]
push eax
push edx
call fcn.0056bf52
add esp, 0x1c
add dword [0x4ea810], eax
jmp 0x59e382
mov ecx, dword [esi + 0x251]
push ecx
mov eax, 3
cmp dword [esi + 0x3a1], 0
jne 0x59e262
add eax, 2
mov edx, dword [0x4eab70]
shl edx, 0x10
or eax, edx
push eax
push 0x4e9eb0
cmp dword [0x4ea81c], 0
jne 0x59e280
xor ecx, ecx
jmp 0x59e292
mov ecx, dword [0x4ea81c]
add ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
push ecx
mov eax, dword [0x4e9ea8]
mov edx, dword [0x4e9ea8]
push eax
sub edx, dword [0x4e9ea0]
mov eax, dword [0x4e9ea4]
sub eax, edx
mov edx, dword [0x4b9f88]
add edx, dword [0x4e9ea8]
push eax
sub edx, dword [0x4e9ea0]
push edx
call fcn.0056bf52
add esp, 0x1c
add dword [0x4ea810], eax
jmp 0x59e382
mov byte [0x4e9eb4], 0
mov byte [0x4e9fb4], 0
mov byte [0x4ea0b4], 0
jmp 0x59e382
cmp dword [ebp - 0x18], 0xd000
jne 0x59e368
mov ecx, dword [0x4ea810]
mov dword [0x4e9ea8], ecx
cmp dword [esi + 0x259], 0
je 0x59e351
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x59e351
push 5
push 0x4e9eb0
mov edx, dword [0x4e9ea8]
push edx
mov ecx, dword [0x4e9ea4]
push ecx
mov eax, dword [0x4e9ea0]
push eax
mov edx, dword [0x4b9f88]
push edx
call dword [esi + 0x259]
add esp, 0x18
add dword [0x4ea810], eax
jmp 0x59e382
mov byte [0x4e9eb4], 0
mov byte [0x4e9fb4], 0
mov byte [0x4ea0b4], 0
jmp 0x59e382
mov ecx, dword [esi + 0x241]
imul ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea0]
mov dword [0x4e9ea8], ecx
mov eax, dword [0x4b9f88]
add eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov dword [0x4ea818], eax
mov edx, dword [esi + 0x241]
mov dword [0x4e9eac], edx
cmp dword [esi + 0x3a5], 0
je 0x59e3c7
mov ecx, dword [esi + 0x3a5]
add ecx, dword [0x4e9ea8]
sub ecx, dword [esi + 0x375]
mov dword [0x4ea814], ecx
jmp 0x59e3ce
xor eax, eax
mov dword [0x4ea814], eax
mov edx, dword [0x4e9ea8]
mov dword [esi + 0x381], edx
xor edi, edi
cmp dword [ebp + 0x18], 0
jne 0x59e864
cmp dword [esi + 0x3a1], 0
jne 0x59e4ca
cmp dword [ebp - 0x18], 0x8000
je 0x59e40e
cmp dword [ebp - 0x18], 0xb000
je 0x59e40e
cmp dword [ebp - 0x18], 0xc000
jne 0x59e489
cmp dword [0x4e2758], 0
je 0x59e489
cmp dword [0x4eab48], 0
je 0x59e489
mov eax, dword [0x4eab48]
cmp dword [eax + 0x482], 0
je 0x59e489
cmp dword [esi + 0x251], 0
je 0x59e489
mov ecx, dword [0x4eab48]
lea edx, [ebp - 0x170]
push 0x100
push edx
mov eax, dword [0x4e9ea8]
mov edx, dword [0x4eab48]
sub eax, dword [ecx + 0x30c]
push eax
mov ecx, dword [edx + 0x318]
push ecx
push 0
call fcn.005e9086
add esp, 0x14
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jne 0x59e48e
xor eax, eax
mov al, byte [ebp - 0x170]
cmp eax, 0x20
jne 0x59e48e
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x59e48e
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x59e4d7
push 0
push 0xe8
lea eax, [ebp - 0x170]
push eax
xor edx, edx
cmp dword [0x4e2740], 0
jne 0x59e4b0
add edx, 2
or edx, 0x2c
mov ecx, dword [0x4e9ea8]
push edx
push 0
push ecx
call fcn.005d36ba
add esp, 0x18
mov dword [ebp - 4], eax
jmp 0x59e4d7
xor eax, eax
mov dword [ebp - 4], eax
mov byte [ebp + eax - 0x170], 0
cmp dword [ebp - 0x18], 0x9000
je 0x59e4e9
cmp dword [ebp - 0x18], 0xd000
jne 0x59e4f7
mov edx, dword [0x4ea810]
cmp edx, dword [esi + 0x385]
ja 0x59e523
cmp dword [ebp - 0x18], 0x8000
je 0x59e512
cmp dword [ebp - 0x18], 0xb000
je 0x59e512
cmp dword [ebp - 0x18], 0xc000
jne 0x59e53b
mov ecx, dword [0x4e9ea8]
add ecx, dword [ebp - 0x20]
cmp ecx, dword [esi + 0x385]
jbe 0x59e53b
mov eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x59e53b
mov edx, dword [ebp + 0x10]
mov dword [edx], 8
jmp 0x59e544
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 1
cmp dword [ebp - 4], 0
jle 0x59e563
cmp dword [0x4e273c], 0
je 0x59e563
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax]
and edx, 0xfffffffe
or edx, 2
mov dword [ecx], edx
xor edi, edi
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [0x4e9ea8]
jbe 0x5a0e3e
cmp dword [0x4e2738], 1
je 0x59e58f
cmp dword [0x4e2738], 2
jne 0x59e5af
cmp dword [ebp - 4], 0
jle 0x59e5af
lea edx, [ebp - 0x170]
push edx
push 0x4ba0da
mov ecx, dword [ebp + 8]
push ecx
call fcn.005fcc36
add esp, 0xc
mov edi, eax
cmp dword [0x4e2738], 2
jne 0x59e5c2
cmp dword [ebp - 4], 0
jg 0x59e6d2
cmp dword [esi + 0x395], 0
je 0x59e6b6
mov eax, dword [esi + 0x395]
cmp eax, dword [0x4e9ea8]
jae 0x59e60a
mov edx, dword [0x4e9ea8]
lea ecx, [esi + 0x399]
sub edx, dword [esi + 0x395]
push edx
push ecx
push 8
push 0x4ba0e0
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x14
add edi, eax
jmp 0x59e673
mov edx, dword [esi + 0x395]
cmp edx, dword [0x4e9ea8]
jbe 0x59e645
mov ecx, dword [esi + 0x395]
lea eax, [esi + 0x399]
sub ecx, dword [0x4e9ea8]
push ecx
push eax
push 8
push 0x4ba0e9
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.005fcc36
add esp, 0x14
add edi, eax
jmp 0x59e673
lea ecx, [esi + 0x399]
push ecx
push 8
push 0x4ba0f2
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
mov edx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp + 0x10]
add esp, 0x10
mov ecx, dword [edx]
and ecx, 0xfffffffe
or ecx, 2
mov dword [eax], ecx
mov edx, dword [ebp + 8]
cmp edi, 8
lea ecx, [edx + edi]
mov dword [ebp - 0x54], ecx
jge 0x59e690
mov eax, dword [ebp - 0x54]
mov byte [eax], 0x20
inc edi
inc dword [ebp - 0x54]
cmp edi, 8
jl 0x59e681
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0x20
inc edi
mov ecx, dword [0x4e9ea8]
push ecx
push 0x4ba0fb
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0xc
add edi, eax
jmp 0x59e6d2
mov edx, dword [0x4e9ea8]
push edx
push 0x4ba0fb
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0xc
add edi, eax
cmp dword [0x4e2738], 0
jne 0x59e713
cmp dword [ebp - 4], 0
jle 0x59e713
test edi, edi
jle 0x59e6f7
cmp edi, 8
jge 0x59e6f7
mov eax, dword [ebp + 8]
mov byte [eax + edi], 0x20
inc edi
cmp edi, 8
jl 0x59e6ea
lea edx, [ebp - 0x170]
push edx
push 0x4ba101
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0xc
add edi, eax
cmp dword [esi + 0x3a1], 0
jne 0x5a0e3e
cmp dword [0x4eab48], 0
je 0x59e79d
mov eax, dword [0x4eab48]
cmp dword [eax + 0x482], 0
je 0x59e79d
cmp dword [esi + 0x251], 0
je 0x59e79d
cmp dword [ebp - 0x18], 0x9000
jne 0x59e766
cmp dword [0x4d5a5c], 3
je 0x59e766
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x318]
cmp ecx, dword [0x4e9ea8]
je 0x59e794
cmp dword [ebp - 0x18], 0x8000
je 0x59e781
cmp dword [ebp - 0x18], 0xb000
je 0x59e781
cmp dword [ebp - 0x18], 0xc000
jne 0x59e79d
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4e9ea8]
jne 0x59e79d
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x10
cmp dword [ebp - 0x18], 0x9000
jne 0x5a0e3e
cmp dword [esi + 0x251], 0
je 0x5a0e3e
mov eax, dword [0x4e9ea8]
push eax
call fcn.0056fd82
test ah, 2
pop ecx
je 0x5a0e3e
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx]
and ecx, 0xfffffff5
or ecx, 0x20
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
inc edx
push edx
push 0x38
push ecx
call fcn.005ba9ca
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x59e82d
push 0
push 0x3b
mov edx, dword [0x4e9ea8]
push edx
call fcn.005ba9ca
add esp, 0xc
test eax, eax
jne 0x59e82d
push 0
push 0x30
mov ecx, dword [0x4e9ea8]
push ecx
call fcn.005ba9ca
add esp, 0xc
test eax, eax
je 0x5a0e3e
mov eax, dword [ebp + 8]
mov byte [eax + edi], 0x20
inc edi
cmp dword [ebp - 4], 0
jle 0x59e840
add edi, dword [ebp - 4]
jmp 0x59e859
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
push edx
push 0x3c
push ecx
call fcn.005ba9ca
add esp, 0xc
add edi, eax
mov eax, dword [ebp + 0x10]
or dword [eax], 8
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x1000
je 0x59e8a8
cmp dword [ebp - 0x18], 0xa000
je 0x59e8a8
cmp dword [ebp - 0x18], 0x2000
je 0x59e8a8
cmp dword [ebp - 0x18], 0x3000
je 0x59e8a8
cmp dword [ebp - 0x18], 0xb000
je 0x59e89e
cmp dword [ebp - 0x18], 0xc000
jne 0x59edd6
cmp dword [ebp + 0x18], 2
jne 0x59edd6
cmp dword [ebp + 0x18], 1
jne 0x59ea6b
cmp dword [ebp - 0x18], 0x1000
je 0x59e8c8
cmp dword [ebp - 0x18], 0xa000
jne 0x59ea6b
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + 2]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jge 0x59ea5d
xor ecx, ecx
mov eax, dword [0x4e9ea8]
mov dword [ebp - 0xc], ecx
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [ebp - 4]
cmp eax, edx
jb 0x59e916
push 0x4ba105
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 8
add edi, eax
jmp 0x59e987
mov eax, dword [0x4ea818]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + edx]
push ecx
push 0x4ba109
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
mov edx, dword [0x4e9ea8]
add esp, 0xc
add edx, dword [ebp - 4]
add edi, eax
cmp edx, dword [esi + 0x385]
jb 0x59e962
mov ecx, dword [0x4e9ea8]
add ecx, dword [ebp - 4]
cmp ecx, dword [esi + 0x389]
jae 0x59e962
mov dword [ebp - 0xc], 8
cmp dword [0x4ea814], 0
je 0x59e987
mov eax, dword [0x4ea818]
mov edx, dword [ebp - 4]
mov cl, byte [eax + edx]
mov eax, dword [0x4ea814]
mov edx, dword [ebp - 4]
cmp cl, byte [eax + edx]
je 0x59e987
or dword [ebp - 0xc], 2
cmp dword [0x4eab50], 0
je 0x59ea1b
cmp dword [0x4e2750], 0
je 0x59ea1b
jmp 0x59e9a6
add dword [0x4eab50], 8
mov ecx, dword [0x4eab50]
cmp dword [ecx], 0
je 0x59e9cd
mov eax, dword [0x4eab50]
mov ecx, dword [0x4eab50]
mov edx, dword [eax]
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 4]
add edx, dword [ecx + 4]
cmp edx, eax
jbe 0x59e99f
mov edx, dword [0x4eab50]
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 4]
mov ecx, dword [edx]
cmp ecx, eax
ja 0x59ea1b
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add edx, dword [ebp - 4]
add ecx, dword [eax + 4]
cmp ecx, edx
jbe 0x59ea1b
mov ecx, dword [0x4e9ea8]
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
add ecx, dword [ebp - 4]
cmp ecx, eax
jae 0x59ea1b
or dword [ebp - 0xc], 4
mov dl, byte [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
mov byte [ecx], dl
mov eax, dword [ebp - 0x54]
mov byte [eax - 1], dl
mov eax, dword [ebp - 0x54]
mov byte [eax - 2], dl
mov ecx, dword [ebp - 4]
and ecx, 0x80000003
jns 0x59ea3f
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 3
jne 0x59ea4a
mov eax, dword [ebp - 0x54]
or byte [eax], 0x40
inc dword [ebp - 4]
add dword [ebp - 0x54], 3
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x59e8e2
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x1000
je 0x59ea8a
cmp dword [ebp - 0x18], 0x2000
je 0x59ea8a
cmp dword [ebp - 0x18], 0xb000
jne 0x59ebf7
xor eax, eax
mov dword [ebp - 0x24], eax
xor edi, edi
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 0x54], eax
cmp edi, dword [ebp - 0x1c]
jge 0x59eb9c
mov eax, dword [0x4e9ea0]
mov ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
xor edx, edx
add ecx, edi
mov dword [ebp - 0xc], edx
cmp ecx, eax
jb 0x59ead1
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x20
jmp 0x59eb84
mov ecx, dword [0x4ea818]
cmp dword [0x4de5b0], 0
mov al, byte [ecx + edi]
mov byte [ebp - 0x3d], al
je 0x59eaf4
mov dl, byte [ebp - 0x3d]
push edx
call fcn.005aa80a
pop ecx
test eax, eax
je 0x59eb30
cmp byte [ebp - 0x3d], 0
je 0x59eb22
xor ecx, ecx
mov cl, byte [ebp - 0x3d]
cmp ecx, 0xa
je 0x59eb22
xor eax, eax
mov al, byte [ebp - 0x3d]
cmp eax, 0xd
je 0x59eb22
xor edx, edx
mov dl, byte [ebp - 0x3d]
cmp edx, 0xc
je 0x59eb22
xor ecx, ecx
mov cl, byte [ebp - 0x3d]
cmp ecx, 9
jne 0x59eb26
mov byte [ebp - 0x3d], 0x2e
mov eax, dword [ebp - 0x54]
mov dl, byte [ebp - 0x3d]
mov byte [eax], dl
jmp 0x59eb36
mov ecx, dword [ebp - 0x54]
mov byte [ecx], 0x2e
mov eax, dword [0x4e9ea8]
add eax, edi
cmp eax, dword [esi + 0x385]
jb 0x59eb63
mov edx, dword [0x4e9ea8]
add edx, edi
cmp edx, dword [esi + 0x389]
jae 0x59eb63
mov dword [ebp - 0xc], 8
mov dword [ebp - 0x24], 1
cmp dword [0x4ea814], 0
je 0x59eb84
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov al, byte [ecx + edi]
cmp al, byte [edx + edi]
je 0x59eb84
or dword [ebp - 0xc], 2
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x58]
mov byte [eax], cl
inc edi
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
cmp edi, dword [ebp - 0x1c]
jl 0x59eaaa
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
cmp dword [ebp - 0x24], 0
je 0x5a0e3e
cmp dword [ebp - 0x18], 0xb000
jne 0x5a0e3e
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov ecx, edx
mov dword [ebp - 0x58], ecx
jmp 0x59ebde
mov eax, dword [ebp - 0x58]
and byte [eax], 0xf7
inc dword [ebp - 4]
inc dword [ebp - 0x58]
cmp dword [ebp - 4], 0x100
jge 0x59ebec
cmp edi, dword [ebp - 4]
jge 0x59ebd2
mov edx, dword [ebp + 0x10]
or dword [edx], 8
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0xa000
je 0x59ec16
cmp dword [ebp - 0x18], 0x3000
je 0x59ec16
cmp dword [ebp - 0x18], 0xc000
jne 0x5a0e3e
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x20]
shr eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 2
xor edi, edi
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 0x58], eax
cmp edi, dword [ebp - 0x1c]
jge 0x59ed79
xor edx, edx
mov ecx, edi
mov dword [ebp - 0xc], edx
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jb 0x59ec75
mov edx, dword [ebp - 0x58]
mov word [edx], 0x20
jmp 0x59ed2d
lea ecx, [edi + 1]
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jbe 0x59ecc7
mov edx, dword [ebp - 0x58]
mov word [edx], 0x3f
mov dword [ebp - 0xc], 1
cmp dword [0x4ea814], 0
je 0x59ed2d
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov al, byte [ecx + edi*2]
cmp al, byte [edx + edi*2]
je 0x59ed2d
or dword [ebp - 0xc], 2
jmp 0x59ed2d
mov ecx, dword [0x4ea818]
mov ax, word [ecx + edi*2]
test ax, ax
je 0x59ed00
cmp ax, 0xa
je 0x59ed00
cmp ax, 0xd
je 0x59ed00
cmp ax, 0xc
je 0x59ed00
cmp ax, 9
je 0x59ed00
cmp ax, 0xffff
je 0x59ed00
cmp ax, 0xfeff
je 0x59ed00
cmp ax, 0xfffe
jne 0x59ed04
mov ax, 0x2e
mov edx, dword [ebp - 0x58]
mov word [edx], ax
cmp dword [0x4ea814], 0
je 0x59ed2d
mov ecx, dword [0x4ea818]
mov edx, dword [0x4ea814]
mov ax, word [ecx + edi*2]
cmp ax, word [edx + edi*2]
je 0x59ed2d
or dword [ebp - 0xc], 2
lea ecx, [edi + 1]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x385]
jbe 0x59ed60
mov eax, edi
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x59ed60
or dword [ebp - 0xc], 8
mov dword [ebp - 0x24], 1
mov dl, byte [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
mov byte [ecx], dl
inc edi
inc dword [ebp - 0x54]
add dword [ebp - 0x58], 2
cmp edi, dword [ebp - 0x1c]
jl 0x59ec48
mov eax, dword [ebp + 8]
mov word [eax + edi*2], 0
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x280
cmp dword [ebp - 0x24], 0
je 0x5a0e3e
cmp dword [ebp - 0x18], 0xc000
jne 0x5a0e3e
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x54], edx
jmp 0x59edbd
mov ecx, dword [ebp - 0x54]
and byte [ecx], 0xf7
inc dword [ebp - 4]
inc dword [ebp - 0x54]
cmp dword [ebp - 4], 0x100
jge 0x59edcb
cmp edi, dword [ebp - 4]
jge 0x59edb1
mov eax, dword [ebp + 0x10]
or dword [eax], 8
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x4000
je 0x59edf5
cmp dword [ebp - 0x18], 0x5000
je 0x59edf5
cmp dword [ebp - 0x18], 0x6000
jne 0x59f0eb
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x1c]
jge 0x59f0dd
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [0x4e9ea8]
cmp eax, edx
jb 0x59ee47
push 0x4ba02e
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push 0x4ba10f
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
mov edx, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
inc edx
imul edx, dword [ebp - 0x20]
add edx, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
cmp edx, ecx
jbe 0x59ee8a
push 0x4ba114
mov eax, dword [esi + 0x261]
dec eax
push eax
push 0x4ba10f
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
cmp dword [ebp - 0x20], 2
jne 0x59ef59
cmp dword [ebp - 0x18], 0x4000
jne 0x59eece
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
movsx edx, word [eax + ecx]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push 0x4ba116
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
cmp dword [ebp - 0x18], 0x5000
jne 0x59ef09
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
movsx eax, word [ecx + edx]
push eax
mov edx, dword [esi + 0x261]
dec edx
push edx
push 0x4ba11c
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
xor ebx, ebx
mov eax, dword [ebp + 8]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x59ef20
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x20
inc ebx
inc dword [ebp - 0x5c]
mov eax, dword [esi + 0x261]
add eax, 0xfffffffb
cmp ebx, eax
jl 0x59ef16
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
movsx eax, word [ecx + edx]
push eax
push 0x4ba122
mov edx, dword [ebp + 8]
add edx, edi
add ebx, edx
push ebx
call fcn.005fcc36
add esp, 0xc
jmp 0x59f013
cmp dword [ebp - 0x18], 0x4000
jne 0x59ef92
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
mov edx, dword [eax + ecx]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push 0x4ba129
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
cmp dword [ebp - 0x18], 0x5000
jne 0x59efc9
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
mov eax, dword [ecx + edx]
push eax
mov edx, dword [esi + 0x261]
dec edx
push edx
push 0x4ba12f
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0x10
jmp 0x59f013
xor ebx, ebx
mov eax, dword [ebp + 8]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x59efe0
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x20
inc ebx
inc dword [ebp - 0x5c]
mov eax, dword [esi + 0x261]
add eax, 0xfffffff7
cmp ebx, eax
jl 0x59efd6
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
mov eax, dword [ecx + edx]
push eax
push 0x4ba135
mov edx, dword [ebp + 8]
add edx, edi
add ebx, edx
push ebx
call fcn.005fcc36
add esp, 0xc
mov ecx, dword [ebp - 4]
inc ecx
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x385]
jbe 0x59f046
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x59f046
mov dword [ebp - 0xc], 8
jmp 0x59f04b
xor edx, edx
mov dword [ebp - 0xc], edx
cmp dword [0x4ea814], 0
je 0x59f0a7
xor ebx, ebx
jmp 0x59f084
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea814]
lea ecx, [edx + eax]
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x20]
mov al, byte [ecx + ebx]
mov ecx, dword [0x4ea818]
lea edx, [ecx + edx]
cmp al, byte [edx + ebx]
je 0x59f083
or dword [ebp - 0xc], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x59f0a7
mov eax, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add eax, ebx
cmp eax, ecx
jb 0x59f058
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x5c], edx
jmp 0x59f0c0
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x5c]
mov byte [eax], cl
inc ebx
inc dword [ebp - 0x5c]
cmp ebx, dword [esi + 0x261]
jl 0x59f0b4
add edi, dword [esi + 0x261]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x59ee06
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x7000
jne 0x59f300
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jge 0x59f2f2
mov ecx, dword [ebp - 4]
mov eax, dword [0x4e9ea0]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
cmp ecx, eax
jb 0x59f14a
push 0x4ba02e
mov edx, dword [esi + 0x261]
dec edx
push edx
push 0x4ba10f
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0x10
jmp 0x59f227
mov eax, dword [ebp - 4]
inc eax
imul dword [ebp - 0x20]
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
add eax, dword [0x4e9ea8]
cmp eax, edx
jbe 0x59f18c
push 0x4ba114
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push 0x4ba10f
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x10
jmp 0x59f227
cmp dword [ebp - 0x20], 4
jne 0x59f1b3
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ea818]
imul edx, dword [ebp - 0x20]
push dword [ecx + edx]
lea edx, [ebp - 0x170]
push edx
call fcn.005d445a
add esp, 8
jmp 0x59f205
cmp dword [ebp - 0x20], 8
jne 0x59f1dd
mov ecx, dword [ebp - 4]
mov eax, dword [0x4ea818]
imul ecx, dword [ebp - 0x20]
push dword [eax + ecx + 4]
push dword [eax + ecx]
lea ecx, [ebp - 0x170]
push ecx
call fcn.005d451a
add esp, 0xc
jmp 0x59f205
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea818]
mov cx, word [edx + eax + 8]
push ecx
push dword [edx + eax + 4]
push dword [edx + eax]
lea eax, [ebp - 0x170]
push eax
call fcn.005d45d6
add esp, 0x10
lea edx, [ebp - 0x170]
push edx
mov ecx, dword [esi + 0x261]
dec ecx
push ecx
push 0x4ba10f
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 0x10
mov edx, dword [ebp - 4]
inc edx
imul edx, dword [ebp - 0x20]
add edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x385]
jbe 0x59f25b
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x20]
add ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x389]
jae 0x59f25b
mov dword [ebp - 0xc], 8
jmp 0x59f260
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [0x4ea814], 0
je 0x59f2bc
xor ebx, ebx
jmp 0x59f299
mov eax, dword [ebp - 4]
imul dword [ebp - 0x20]
mov edx, dword [0x4ea814]
lea ecx, [edx + eax]
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x20]
mov al, byte [ecx + ebx]
mov ecx, dword [0x4ea818]
lea edx, [ecx + edx]
cmp al, byte [edx + ebx]
je 0x59f298
or dword [ebp - 0xc], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x59f2bc
mov eax, dword [ebp - 4]
mov ecx, dword [0x4e9ea0]
imul dword [ebp - 0x20]
add eax, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add eax, ebx
cmp eax, ecx
jb 0x59f26d
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
jmp 0x59f2d5
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x60]
mov byte [eax], cl
inc ebx
inc dword [ebp - 0x60]
cmp ebx, dword [esi + 0x261]
jl 0x59f2c9
add edi, dword [esi + 0x261]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jl 0x59f109
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x80
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x8000
je 0x59f31f
cmp dword [ebp - 0x18], 0xb000
je 0x59f31f
cmp dword [ebp - 0x18], 0xc000
jne 0x59fcfc
mov eax, dword [0x4e9ea8]
add eax, dword [ebp - 0x20]
cmp eax, dword [esi + 0x385]
jbe 0x59f348
mov edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x389]
jae 0x59f348
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 8
jmp 0x59f34f
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp + 0x18], 1
jne 0x59f70e
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov edi, ecx
cmp dword [esi + 0x265], 0
je 0x59f502
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
cmp dword [0x4eab48], 0
je 0x59f4f8
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x308]
cmp ecx, dword [0x4e9ea8]
ja 0x59f4f8
cmp dword [0x4eab74], 0
je 0x59f3cb
mov eax, dword [0x4eab74]
cmp eax, dword [0x4e9ea8]
jbe 0x59f3cb
mov edx, dword [0x4e9ea8]
mov eax, dword [ebp + 8]
mov dword [0x4eab5c], edx
mov dword [0x4eab58], edx
mov byte [eax], 0x2e
jmp 0x59f4f8
mov ecx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
cmp eax, dword [0x4eab58]
jbe 0x59f41f
mov edx, dword [0x4eab48]
push 0x4eab5c
mov eax, dword [esi + 0x379]
mov ecx, dword [edx + 0x308]
sub ecx, dword [esi + 0x375]
mov edx, dword [0x4eab48]
sub eax, ecx
push eax
mov eax, dword [0x4e9ea8]
mov ecx, dword [edx + 0x308]
push ecx
push eax
call fcn.0059c516
add esp, 0x10
mov dword [0x4eab58], eax
mov edx, dword [0x4eab5c]
cmp edx, dword [0x4e9ea8]
jne 0x59f441
mov ecx, dword [0x4eab5c]
cmp ecx, dword [0x4eab58]
je 0x59f441
mov eax, dword [ebp + 8]
mov byte [eax], 0x45
mov edx, dword [0x4eab5c]
cmp edx, dword [0x4e9ea8]
ja 0x59f4a3
push 0x4eab5c
mov ecx, dword [0x4eab5c]
sub ecx, dword [esi + 0x375]
mov eax, dword [esi + 0x379]
sub eax, ecx
push eax
mov edx, dword [0x4eab5c]
push edx
mov ecx, dword [0x4e9ea8]
push ecx
call fcn.0059c516
add esp, 0x10
mov dword [0x4eab58], eax
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4eab58]
jbe 0x59f4a3
mov ecx, dword [0x4eab5c]
mov dword [0x4eab58], ecx
mov eax, dword [0x4eab58]
cmp eax, dword [0x4e9ea8]
jne 0x59f4d6
mov edx, dword [0x4eab58]
cmp edx, dword [0x4eab5c]
je 0x59f4d6
mov cl, 0x54
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x45
je 0x59f4cf
add ecx, 0xffffffee
mov eax, dword [ebp + 8]
mov byte [eax], cl
jmp 0x59f4f8
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab58]
jbe 0x59f4f8
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab5c]
jae 0x59f4f8
mov eax, dword [ebp + 8]
mov byte [eax], 0x49
mov edx, 1
mov dword [ebp - 0xc], edx
mov edi, edx
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
ja 0x59f533
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0
lea ecx, [edi + 1]
push ecx
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.005f95aa
add esp, 0xc
jmp 0x59f5d2
mov edx, dword [0x4e9ea8]
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
add edx, dword [ebp - 0x20]
cmp edx, ecx
jbe 0x59f575
push 0x4ba13c
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 8
add edi, eax
lea edx, [edi + 1]
push edx
push 1
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.005f95aa
add esp, 0xc
jmp 0x59f5d2
mov eax, dword [0x4ea818]
mov edx, dword [eax]
push edx
push 0x4ba0fb
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 0xc
add edi, eax
cmp dword [0x4ea814], 0
je 0x59f5c0
mov eax, dword [0x4ea818]
mov ecx, dword [0x4ea814]
mov edx, dword [eax]
cmp edx, dword [ecx]
je 0x59f5c0
lea eax, [edi + 1]
push eax
push 2
mov edx, dword [ebp + 0xc]
push edx
call fcn.005f95aa
add esp, 0xc
jmp 0x59f5d2
lea ecx, [edi + 1]
push ecx
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.005f95aa
add esp, 0xc
cmp dword [0x4eab48], 0
je 0x59f624
mov edx, dword [0x4eab48]
mov ecx, dword [edx + 0x308]
cmp ecx, dword [0x4e9ea8]
jbe 0x59f624
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [esi + 0x375]
jb 0x59f624
mov ecx, dword [0x4eab48]
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
mov eax, dword [ecx + 0x308]
cmp eax, edx
jae 0x59f624
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
mov eax, dword [ebp + 0x10]
or dword [eax], 0x80
cmp dword [esi + 0x265], 0
je 0x59f63c
mov edx, dword [ebp + 0xc]
mov byte [edx], 0x40
cmp dword [0x4eab50], 0
je 0x59fca1
cmp dword [0x4e2750], 0
je 0x59fca1
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
xor ebx, ebx
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
jmp 0x59f66d
add dword [0x4eab50], 8
mov eax, dword [0x4eab50]
cmp dword [eax], 0
je 0x59f693
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add ecx, dword [eax + 4]
add edx, ebx
cmp ecx, edx
jbe 0x59f666
mov ecx, dword [0x4eab50]
mov edx, dword [0x4e9ea8]
add edx, ebx
mov eax, dword [ecx]
cmp eax, edx
ja 0x59f6ff
mov ecx, dword [0x4eab50]
mov edx, dword [0x4eab50]
mov eax, dword [ecx]
mov ecx, dword [0x4e9ea8]
add eax, dword [edx + 4]
add ecx, ebx
cmp eax, ecx
jbe 0x59f6ff
mov edx, dword [esi + 0x375]
mov eax, dword [0x4e9ea8]
add edx, dword [esi + 0x379]
add eax, ebx
cmp eax, edx
jae 0x59f6ff
mov ecx, ebx
add ecx, ecx
mov eax, 6
sub eax, ecx
mov edx, dword [ebp - 0x54]
or byte [edx + eax], 4
mov ecx, ebx
add ecx, ecx
mov eax, 7
sub eax, ecx
mov edx, dword [ebp - 0x54]
or byte [edx + eax], 4
inc ebx
cmp ebx, 4
jl 0x59f66d
jmp 0x59fca1
cmp dword [ebp - 0x18], 0x8000
jne 0x59f71d
cmp dword [ebp + 0x18], 2
je 0x59f73d
cmp dword [ebp - 0x18], 0xb000
je 0x59f733
cmp dword [ebp - 0x18], 0xc000
jne 0x59fca1
cmp dword [ebp + 0x18], 3
jne 0x59fca1
mov byte [ebp - 0x170], 0
xor edi, edi
mov eax, dword [0x4eab78]
mov dword [ebp - 0x3c], eax
xor edx, edx
mov dword [ebp - 4], edx
cmp dword [ebp - 0x3c], 0xffffffff
je 0x59f7b2
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [ebp - 0x3c]
je 0x59f7b2
mov eax, dword [ebp - 0x3c]
add eax, 4
cmp eax, dword [0x4e9ea8]
je 0x59f7b2
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jb 0x59f7b2
push 3
push 4
mov ecx, dword [ebp - 0x3c]
push ecx
lea eax, [ebp - 0x3c]
push eax
call fcn.005b7316
add esp, 0x10
cmp eax, 4
je 0x59f7a6
mov dword [ebp - 0x3c], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x200
jl 0x59f753
cmp dword [ebp - 4], 0x200
jl 0x59f7c6
push 0x4ba145
call fcn.00587936
pop ecx
cmp dword [0x4eab54], 0
je 0x59f998
mov edx, dword [0x4e9ea8]
cmp edx, dword [esi + 0x375]
jne 0x59f7fe
mov ecx, dword [ebp + 8]
push esi
mov esi, 0x4ba165
mov edi, ecx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x59f987
mov edx, dword [esi + 0x375]
add edx, 4
cmp edx, dword [0x4e9ea8]
jne 0x59f829
mov ecx, dword [ebp + 8]
push esi
mov esi, 0x4ba17c
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop esi
jmp 0x59f987
mov edx, dword [esi + 0x375]
add edx, 8
cmp edx, dword [0x4e9ea8]
jne 0x59f857
mov ecx, dword [ebp + 8]
push esi
mov esi, 0x4ba194
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x59f987
cmp dword [0x4d36d8], 2
jne 0x59f887
mov edx, dword [esi + 0x375]
add edx, 0x24
cmp edx, dword [0x4e9ea8]
jne 0x59f887
mov ecx, dword [ebp + 8]
push esi
mov esi, 0x4ba1af
mov edi, ecx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
jmp 0x59f987
mov edx, dword [esi + 0x375]
add edx, 0x2c
cmp edx, dword [0x4e9ea8]
jne 0x59f8b4
mov ecx, dword [ebp + 8]
push esi
mov esi, 0x4ba1bb
mov edi, ecx
mov eax, edi
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x59f987
cmp dword [0x4d36d8], 2
jne 0x59f91c
mov edx, dword [esi + 0x375]
add edx, 0x34
cmp edx, dword [0x4e9ea8]
jne 0x59f91c
mov ecx, dword [0x4ea818]
mov eax, dword [ecx]
push eax
push 2
call fcn.005651ee
add esp, 8
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x59f905
mov edx, dword [ebp + 8]
push esi
mov esi, 0x4ba1dd
mov edi, edx
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x59f987
mov edx, dword [ebp - 0x44]
push edx
push 0x4ba1ea
mov ecx, dword [ebp + 8]
push ecx
call fcn.005fcc36
add esp, 0xc
jmp 0x59f987
cmp dword [0x4d36d8], 1
jne 0x59f981
mov eax, dword [esi + 0x375]
add eax, 0x60
cmp eax, dword [0x4e9ea8]
jne 0x59f981
mov edx, dword [0x4ea818]
mov ecx, dword [edx]
push ecx
push 2
call fcn.005651ee
add esp, 8
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x59f96a
mov eax, dword [ebp + 8]
push esi
mov esi, 0x4ba1dd
mov edi, eax
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x59f987
mov edx, dword [ebp - 0x44]
push edx
push 0x4ba1ea
mov ecx, dword [ebp + 8]
push ecx
call fcn.005fcc36
add esp, 0xc
jmp 0x59f987
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov edx, dword [ebp + 8]
push edx
call fcn.005f96de
pop ecx
mov edi, eax
jmp 0x59fc17
mov eax, dword [0x4e9ea8]
cmp eax, dword [ebp - 0x3c]
jne 0x59f9dd
mov edx, dword [0x4ea818]
cmp dword [edx], 0xffffffff
jne 0x59f9c5
push 0x4ba1fc
mov ecx, dword [ebp + 8]
push ecx
call fcn.005fcc36
add esp, 8
mov edi, eax
jmp 0x59fc17
push 0x4ba20d
mov eax, dword [ebp + 8]
push eax
call fcn.005fcc36
add esp, 8
mov edi, eax
jmp 0x59fc17
mov eax, dword [ebp - 0x3c]
add eax, 4
cmp eax, dword [0x4e9ea8]
jne 0x59fa03
push 0x4ba228
mov edx, dword [ebp + 8]
push edx
call fcn.005fcc36
add esp, 8
mov edi, eax
jmp 0x59fc17
cmp dword [0x4eab48], 0
je 0x59fc17
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [esi + 0x375]
jb 0x59fc17
mov ecx, dword [0x4eab48]
mov edx, dword [esi + 0x375]
add edx, dword [esi + 0x379]
mov eax, dword [ecx + 0x308]
add eax, dword [ebp - 0x20]
cmp eax, edx
ja 0x59fc17
mov ecx, dword [0x4eab48]
mov eax, dword [ecx + 0x308]
cmp eax, dword [0x4e9ea8]
ja 0x59fc17
mov edx, dword [0x4e9ea8]
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
add edx, dword [ebp - 0x20]
cmp edx, ecx
ja 0x59fc17
mov eax, dword [0x4eab48]
mov edx, dword [0x4e9ea8]
sub edx, dword [eax + 0x308]
shr edx, 2
mov dword [ebp - 0xc], edx
push 0
mov ecx, dword [ebp + 0xc]
inc ecx
push ecx
mov eax, dword [ebp + 8]
inc eax
push eax
mov edx, dword [ebp - 0xc]
push edx
push 0x4ea824
call fcn.00564392
add esp, 0x14
mov edi, eax
test edi, edi
jle 0x59fb18
inc edi
mov eax, dword [ebp + 0x10]
or dword [eax], 0x80
cmp dword [ebp - 0xc], 0
jne 0x59fada
cmp dword [0x4ea92c], 0
je 0x59fada
mov edx, dword [ebp + 8]
mov byte [edx], 0x42
jmp 0x59fb12
push 1
lea ecx, [ebp - 0x370]
push 0
push ecx
mov eax, dword [ebp - 0xc]
inc eax
push eax
push 0x4ea824
call fcn.00564392
add esp, 0x14
test eax, eax
jne 0x59fb0c
cmp dword [0x4eab44], 0
jne 0x59fb0c
mov edx, dword [ebp + 8]
mov byte [edx], 0x45
jmp 0x59fb12
mov ecx, dword [ebp + 8]
mov byte [ecx], 0x49
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x40
test edi, edi
jne 0x59fc17
cmp dword [0x4eab74], 0
je 0x59fb3b
mov edx, dword [0x4eab74]
cmp edx, dword [0x4e9ea8]
ja 0x59fc17
mov eax, dword [0x4ea818]
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [eax]
push edx
call fcn.0059d22e
add esp, 8
test eax, eax
je 0x59fc17
push 0x4ba233
mov ecx, dword [ebp + 8]
push ecx
call fcn.005fcc36
mov edi, eax
add esp, 8
mov eax, 0x100
mov ecx, dword [0x4ea818]
sub eax, edi
push eax
mov edx, dword [ebp + 8]
add edx, edi
push edx
push 0
mov eax, dword [ecx]
push eax
call fcn.005d42b2
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x59fb99
add edi, dword [ebp - 0xc]
jmp 0x59fbbf
mov edx, 0x100
push 0
sub edx, edi
mov eax, dword [0x4ea818]
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
push 0x40
push 0
mov edx, dword [eax]
push edx
call fcn.005d36ba
add esp, 0x18
add edi, eax
cmp dword [ebp - 0x30], 0
je 0x59fc08
mov ecx, 0x100
sub ecx, edi
cmp ecx, 0x20
jle 0x59fc08
push 0x4ba23e
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 8
add edi, eax
mov edx, 0x100
sub edx, edi
push 0
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
push 0x40
push 0
mov eax, dword [ebp - 0x30]
push eax
call fcn.005d36ba
add esp, 0x18
add edi, eax
cmp dword [0x4e2748], 0
je 0x59fc17
mov edx, dword [ebp + 0x10]
or dword [edx], 2
test edi, edi
jne 0x59fc7f
mov eax, dword [0x4e9ea0]
mov ecx, dword [0x4e9ea8]
add eax, dword [0x4e9ea4]
add ecx, 4
cmp ecx, eax
ja 0x59fc7f
lea edx, [ebp - 0x170]
mov eax, dword [0x4ea818]
push edx
push 0x100
mov ecx, dword [ebp + 8]
push ecx
push 0x3cc
push 0
mov edx, dword [eax]
push edx
call fcn.005d36ba
add esp, 0x18
mov edi, eax
cmp byte [ebp - 0x170], 0
je 0x59fc7f
lea eax, [ebp - 0x170]
push eax
push 0x4ba102
mov edx, dword [ebp + 8]
push edx
call fcn.005fcc36
add esp, 0xc
mov edi, eax
cmp dword [0x4eab48], 0
je 0x59fca1
mov eax, dword [0x4eab48]
mov edx, dword [eax + 0x308]
cmp edx, dword [0x4e9ea8]
jbe 0x59fca1
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
cmp dword [ebp + 0x18], 1
jne 0x5a0e3e
cmp dword [0x4ea814], 0
je 0x5a0e3e
xor ebx, ebx
jmp 0x59fcd6
mov eax, dword [0x4ea814]
mov ecx, dword [0x4ea818]
mov dl, byte [eax + ebx]
cmp dl, byte [ecx + ebx]
je 0x59fcd5
mov eax, dword [ebp + 0x10]
or dword [eax], 2
inc ebx
cmp ebx, dword [ebp - 0x20]
jge 0x5a0e3e
mov ecx, dword [0x4e9ea0]
mov edx, dword [0x4e9ea8]
add ecx, dword [0x4e9ea4]
add edx, ebx
cmp edx, ecx
jb 0x59fcbc
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0x9000
je 0x59fd1c
cmp dword [ebp - 0x18], 0xd000
jne 0x5a0d39
cmp dword [ebp + 0x18], 1
jne 0x5a0d39
push 0x100
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.005f95aa
add esp, 0xc
mov edx, dword [0x4ea810]
cmp edx, dword [esi + 0x385]
jbe 0x59fd56
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [esi + 0x389]
jae 0x59fd56
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x88
jmp 0x59fd5f
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x80
cmp dword [ebp + 0x18], 1
jne 0x5a04a5
cmp dword [0x4ea81c], 0
je 0x59fe95
mov ecx, dword [0x4e9ea0]
add ecx, dword [0x4e9ea4]
cmp ecx, dword [0x4e9ea8]
jbe 0x59fe95
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea81c]
xor ebx, ebx
mov bl, byte [edx + eax]
mov eax, ebx
and eax, 0x60
cmp eax, 0x20
jne 0x59fdb6
mov edx, dword [ebp + 8]
mov byte [edx], 0x42
jmp 0x59fde0
mov ecx, ebx
and ecx, 0x60
cmp ecx, 0x40
jne 0x59fdc8
mov eax, dword [ebp + 8]
mov byte [eax], 0x49
jmp 0x59fde0
mov edx, ebx
and edx, 0x60
cmp edx, 0x60
jne 0x59fdda
mov ecx, dword [ebp + 8]
mov byte [ecx], 0x45
jmp 0x59fde0
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
mov edx, ebx
and edx, 0x1f
cmp edx, 0x1f
jne 0x59fdf3
mov ecx, dword [ebp + 8]
mov byte [ecx + 1], 0x24
jmp 0x59fe41
mov eax, ebx
and eax, 0x1f
cmp eax, 0x1e
jne 0x59fe06
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x3e
jmp 0x59fe41
mov ecx, ebx
and ecx, 0x1f
cmp ecx, 3
jne 0x59fe19
mov eax, dword [ebp + 8]
mov byte [eax + 1], 0x3f
jmp 0x59fe41
mov edx, ebx
and edx, 0x1f
cmp edx, 0x13
jne 0x59fe2c
mov ecx, dword [ebp + 8]
mov byte [ecx + 1], 0x3f
jmp 0x59fe41
test bl, 0x80
je 0x59fe3a
mov eax, dword [ebp + 8]
mov byte [eax + 1], 0x2e
jmp 0x59fe41
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x20
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0x40
cmp dword [0x4ea820], 0
je 0x59fe8c
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea820]
xor ebx, ebx
mov bl, byte [edx + eax]
and ebx, 0x81
cmp ebx, 0x80
jne 0x59fe7d
mov eax, dword [ebp + 0xc]
mov byte [eax + 1], 8
jmp 0x59fe8c
cmp ebx, 0x81
jne 0x59fe8c
mov edx, dword [ebp + 0xc]
mov byte [edx + 1], 0x20
mov dword [ebp - 0x10], 2
jmp 0x59fe9a
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [0x4d91ac], 0
je 0x59ff4c
mov eax, dword [0x4e9ea0]
add eax, dword [0x4e9ea4]
cmp eax, dword [0x4e9ea8]
jbe 0x59ff4c
mov edx, dword [0x4ea4e0]
cmp dword [0x4ea4b4], 0x50
mov dword [ebp - 0x2c], edx
je 0x59fed9
cmp dword [0x4ea4b4], 0x60
jne 0x59ff35
cmp dword [ebp - 0x2c], 0
je 0x59ff35
mov ecx, dword [esi + 0x375]
cmp ecx, dword [ebp - 0x2c]
ja 0x59ff06
mov eax, dword [esi + 0x375]
add eax, dword [esi + 0x379]
cmp eax, dword [ebp - 0x2c]
jbe 0x59ff06
mov edx, dword [ebp - 0x2c]
cmp edx, dword [0x4e9ea8]
jne 0x59ff12
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x3c
jmp 0x59ff3f
mov edx, dword [ebp - 0x2c]
cmp edx, dword [0x4e9ea8]
jae 0x59ff29
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x55
jmp 0x59ff3f
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x44
jmp 0x59ff3f
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x4e
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x40
inc dword [ebp - 0x10]
cmp dword [0x4d91b0], 0
je 0x5a02b4
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x5a02b4
cmp dword [0x4eab6c], 2
jne 0x5a019d
cmp dword [0x4eab4c], 0
je 0x5a019d
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab60]
jb 0x5a019d
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
ja 0x5a019d
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab60]
jne 0x59ffd9
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
je 0x59ffd9
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x64
jmp 0x5a02a7
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab64]
jne 0x5a0003
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab68]
je 0x5a0003
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x75
jmp 0x5a02a7
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab60]
jne 0x5a002d
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab68]
jne 0x5a002d
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov byte [ecx + eax], 0x72
jmp 0x5a02a7
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab64]
jne 0x5a0058
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
jne 0x5a0058
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x66
jmp 0x5a02a7
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab68]
jne 0x5a0075
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x7a
jmp 0x5a02a7
mov ecx, dword [0x4ea4b4]
and ecx, 0xf0
cmp ecx, 0x50
je 0x5a0099
mov eax, dword [0x4ea4b4]
and eax, 0xf0
cmp eax, 0x60
jne 0x5a018e
mov edx, dword [0x4eab4c]
mov ecx, dword [0x4eab68]
sub ecx, dword [edx + 0xc]
push ecx
mov eax, dword [0x4eab4c]
push eax
call fcn.005d520a
add esp, 8
mov dword [ebp - 4], eax
test eax, eax
jl 0x5a018e
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x69
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
jmp 0x5a0174
mov eax, dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x421]
lea eax, [eax + eax*8]
mov edx, dword [0x4eab4c]
mov eax, dword [ecx + eax + 5]
mov ecx, dword [0x4eab68]
sub ecx, dword [edx + 0xc]
cmp eax, ecx
jne 0x5a02a7
mov eax, dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x421]
lea eax, [eax + eax*8]
movzx eax, byte [ecx + eax]
cmp eax, 3
je 0x5a0171
mov edx, dword [ebp - 4]
mov ecx, dword [0x4eab4c]
mov eax, dword [ecx + 0x421]
lea edx, [edx + edx*8]
mov ecx, dword [0x4eab4c]
mov edx, dword [eax + edx + 1]
mov eax, dword [0x4e9ea8]
sub eax, dword [ecx + 0xc]
cmp edx, eax
jne 0x5a0171
mov edx, dword [0x4eab68]
cmp edx, dword [0x4e9ea8]
jae 0x5a0166
mov ecx, dword [ebp - 0x54]
mov byte [ecx], 0x61
jmp 0x5a02a7
mov eax, dword [ebp - 0x54]
mov byte [eax], 0x68
jmp 0x5a02a7
inc dword [ebp - 4]
mov edx, dword [0x4eab4c]
mov ecx, dword [edx + 0x425]
cmp ecx, dword [ebp - 4]
jg 0x5a00dd
jmp 0x5a02a7
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x69
jmp 0x5a02a7
mov ecx, dword [0x4eab60]
cmp ecx, dword [0x4e9ea8]
ja 0x5a0222
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
ja 0x5a0222
mov edx, dword [0x4eab60]
cmp edx, dword [0x4e9ea8]
jne 0x5a01e0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dl, 0x64
cmp dword [0x4eab6c], 0
jne 0x5a01d8
inc edx
mov byte [ecx + eax], dl
jmp 0x5a02a7
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab64]
jne 0x5a0208
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x66
cmp dword [0x4eab6c], 0
jne 0x5a0200
inc ecx
mov byte [eax + edx], cl
jmp 0x5a02a7
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x69
cmp dword [0x4eab6c], 0
jne 0x5a021a
inc ecx
mov byte [eax + edx], cl
jmp 0x5a02a7
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
jb 0x5a029d
mov edx, dword [0x4e9ea8]
cmp edx, dword [0x4eab60]
ja 0x5a029d
mov ecx, dword [0x4e9ea8]
cmp ecx, dword [0x4eab60]
jne 0x5a0262
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov cl, 0x75
cmp dword [0x4eab6c], 0
jne 0x5a025d
inc ecx
mov byte [eax + edx], cl
jmp 0x5a02a7
mov eax, dword [0x4e9ea8]
cmp eax, dword [0x4eab64]
jne 0x5a0286
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov al, 0x72
cmp dword [0x4eab6c], 0
jne 0x5a0281
inc eax
mov byte [edx + ecx], al
jmp 0x5a02a7
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov al, 0x69
cmp dword [0x4eab6c], 0
jne 0x5a0298
inc eax
mov byte [edx + ecx], al
jmp 0x5a02a7
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], 0x4e
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0x40
inc dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
add ecx, dword [ebp - 0x10]
push esi
mov esi, ecx
or ecx, 0xffffffff
mov edi, 0x4e9eb4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.005f96de
pop ecx
mov edi, eax
cmp dword [0x4ea814], 0
je 0x5a03a6
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x5a03a6
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.005f97de
add esp, 0xc
test eax, eax
je 0x5a03a6
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
cmp edi, dword [ebp - 0xc]
jle 0x5a03a6
mov eax, dword [ebp - 0x54]
xor edx, edx
mov dl, byte [eax]
push edx
call fcn.005fdc5a
pop ecx
test eax, eax
jne 0x5a0373
inc dword [ebp - 0xc]
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
jmp 0x5a03a1
mov ecx, dword [0x4ea814]
mov edx, dword [0x4ea818]
mov al, byte [ecx + ebx]
cmp al, byte [edx + ebx]
je 0x5a0394
mov ecx, dword [ebp - 0x58]
mov al, 2
mov byte [ecx], al
mov edx, dword [ebp - 0x58]
mov byte [edx - 1], al
inc ebx
add dword [ebp - 0xc], 2
add dword [ebp - 0x58], 2
add dword [ebp - 0x54], 2
cmp edi, dword [ebp - 0xc]
jg 0x5a0356
cmp dword [0x4eab50], 0
je 0x5a0e3e
cmp dword [0x4e2750], 0
je 0x5a0e3e
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + edx]
mov dword [ebp - 0x58], ecx
cmp edi, dword [ebp - 0xc]
jle 0x5a0e3e
mov eax, dword [ebp - 0x58]
xor edx, edx
mov dl, byte [eax]
push edx
call fcn.005fdc5a
pop ecx
test eax, eax
jne 0x5a0410
inc dword [ebp - 0xc]
inc dword [ebp - 0x54]
inc dword [ebp - 0x58]
jmp 0x5a0497
add dword [0x4eab50], 8
mov ecx, dword [0x4eab50]
cmp dword [ecx], 0
je 0x5a0436
mov eax, dword [0x4eab50]
mov ecx, dword [0x4eab50]
mov edx, dword [eax]
mov eax, dword [0x4e9ea8]
add edx, dword [ecx + 4]
add eax, ebx
cmp edx, eax
jbe 0x5a0409
mov edx, dword [0x4eab50]
mov eax, dword [0x4e9ea8]
add eax, ebx
mov ecx, dword [edx]
cmp ecx, eax
ja 0x5a048a
mov edx, dword [0x4eab50]
mov eax, dword [0x4eab50]
mov ecx, dword [edx]
mov edx, dword [0x4e9ea8]
add ecx, dword [eax + 4]
add edx, ebx
cmp ecx, edx
jbe 0x5a048a
mov eax, dword [esi + 0x375]
mov ecx, dword [0x4e9ea8]
add eax, dword [esi + 0x379]
add ecx, ebx
cmp ecx, eax
jae 0x5a048a
mov edx, dword [ebp - 0x54]
or byte [edx], 4
mov ecx, dword [ebp - 0x54]
or byte [ecx + 1], 4
inc ebx
add dword [ebp - 0xc], 2
add dword [ebp - 0x54], 2
add dword [ebp - 0x58], 2
cmp edi, dword [ebp - 0xc]
jg 0x5a03e9
jmp 0x5a0e3e
cmp dword [ebp + 0x18], 2
jne 0x5a076f
cmp dword [esi + 0x3a1], 0
jne 0x5a0506
test byte [esi + 0x257], 1
jne 0x5a0506
cmp dword [0x4d9210], 0
je 0x5a0506
mov eax, dword [ebp + 8]
mov edx, dword [0x4e9ea8]
push eax
push 0x3e
push edx
call fcn.005ba9ca
mov edi, eax
xor eax, eax
mov dword [ebp - 0xc], eax
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov ecx, edx
mov dword [ebp - 0x54], ecx
cmp edi, dword [ebp - 0xc]
jle 0x5a0508
mov eax, dword [ebp - 0x54]
or byte [eax], 0x40
inc dword [ebp - 0xc]
inc dword [ebp - 0x54]
cmp edi, dword [ebp - 0xc]
jg 0x5a04f3
jmp 0x5a0508
xor edi, edi
push 0x4e9fb4
call fcn.005f96de
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, edi
cmp eax, 0xff
jle 0x5a052c
mov edx, 0xff
sub edx, edi
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0xc]
push ecx
push 0x4e9fb4
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005f953a
add esp, 0xc
cmp dword [0x4eab70], 0
jle 0x5a069c
cmp dword [0x4ea814], 0
je 0x5a05d7
mov edx, dword [0x4ea810]
cmp edx, dword [0x4e9ea8]
jbe 0x5a05d7
mov ecx, dword [0x4ea810]
mov eax, dword [0x4ea818]
sub ecx, dword [0x4e9ea8]
mov edx, dword [0x4ea814]
push ecx
push eax
push edx
call fcn.005f97de
add esp, 0xc
test eax, eax
je 0x5a05d7
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x54], edx
jmp 0x5a05bd
mov ecx, dword [0x4eab70]
inc ebx
mov eax, ecx
shl ecx, 3
sub ecx, eax
lea ecx, [eax + ecx*4]
mov dl, byte [ecx*4 + 0x4d9494]
mov ecx, dword [ebp - 0x54]
or dl, 0x80
mov byte [ecx], dl
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x5a0767
cmp ebx, 0x100
jl 0x5a059a
jmp 0x5a0767
cmp dword [0x4ea81c], 0
je 0x5a065e
cmp dword [0x4d91a8], 0
je 0x5a065e
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x5a065e
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov eax, dword [0x4ea81c]
test byte [eax + ecx], 0x80
jne 0x5a065e
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x54], edx
jmp 0x5a0644
mov ecx, dword [0x4eab70]
inc ebx
mov eax, ecx
shl ecx, 3
sub ecx, eax
lea ecx, [eax + ecx*4]
mov dl, byte [ecx*4 + 0x4d9490]
mov ecx, dword [ebp - 0x54]
or dl, 0x80
mov byte [ecx], dl
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x5a0767
cmp ebx, 0x100
jl 0x5a0621
jmp 0x5a0767
xor ebx, ebx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], 0x4ea710
jmp 0x5a0683
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
inc ebx
mov al, byte [ecx]
mov byte [edx], al
inc dword [ebp - 0x58]
inc dword [ebp - 0x54]
cmp ebx, dword [ebp - 0xc]
jg 0x5a0767
lea ecx, [edi + ebx]
cmp ecx, 0x100
jl 0x5a0672
jmp 0x5a0767
cmp dword [0x4ea814], 0
je 0x5a0702
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x5a0702
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.005f97de
add esp, 0xc
test eax, eax
je 0x5a0702
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x58], edx
jmp 0x5a06ef
mov ecx, dword [ebp - 0x58]
mov byte [ecx], 2
inc ebx
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x5a0767
cmp ebx, 0x100
jl 0x5a06e5
jmp 0x5a0767
cmp dword [0x4ea81c], 0
je 0x5a0767
cmp dword [0x4d91a8], 0
je 0x5a0767
mov edx, dword [0x4e9ea0]
add edx, dword [0x4e9ea4]
cmp edx, dword [0x4e9ea8]
jbe 0x5a0767
mov ecx, dword [0x4e9ea8]
sub ecx, dword [0x4e9ea0]
mov eax, dword [0x4ea81c]
test byte [eax + ecx], 0x80
jne 0x5a0767
mov ebx, edi
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
mov dword [ebp - 0x58], edx
jmp 0x5a0756
mov ecx, dword [ebp - 0x58]
or byte [ecx], 1
inc ebx
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0xc]
add eax, edi
cmp ebx, eax
jg 0x5a0767
cmp ebx, 0x100
jl 0x5a074c
add edi, dword [ebp - 0xc]
jmp 0x5a0e3e
cmp dword [ebp + 0x18], 3
jne 0x5a0d29
cmp dword [esi + 0x3a1], 0
jne 0x5a0d29
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
inc eax
jmp 0x5a07d0
cmp dword [esi + 0x26d], 2
jne 0x5a07ba
cmp dword [0x4b9f90], 0
je 0x5a07ba
cmp eax, dword [0x4b9f94]
jae 0x5a07ba
mov edx, dword [0x4b9f90]
cmp dword [edx + eax*4], 0
jne 0x5a07e0
cmp dword [0x4ea820], 0
je 0x5a07cf
mov ecx, dword [0x4ea820]
test byte [ecx + eax], 1
jne 0x5a07e0
inc eax
mov edx, dword [0x4ea810]
sub edx, dword [0x4e9ea0]
cmp eax, edx
jb 0x5a0794
mov ecx, dword [0x4ea810]
sub ecx, dword [0x4e9ea0]
cmp eax, ecx
jae 0x5a0818
push 0x4ba245
mov eax, dword [ebp + 8]
push eax
call fcn.005fcc36
mov edi, eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
add esp, 8
mov edx, dword [eax]
and edx, 8
or edx, 2
mov dword [ecx], edx
jmp 0x5a0ca5
cmp dword [esi + 0x26d], 1
jne 0x5a0875
cmp dword [esi + 0x251], 0
je 0x5a0875
mov eax, dword [0x4e9ea8]
push eax
call fcn.005e78fa
pop ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x5a0ca5
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx]
cmp ecx, dword [0x4e9ea8]
jne 0x5a0ca5
mov eax, dword [ebp + 8]
push eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0xc]
push ecx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 8]
push edx
call fcn.005eb606
add esp, 0xc
mov edi, eax
jmp 0x5a0ca5
cmp dword [esi + 0x26d], 2
jne 0x5a08f4
cmp dword [esi + 0x251], 0
je 0x5a08f4
cmp dword [0x4b9f90], 0
je 0x5a0ca5
mov eax, dword [0x4e9ea0]
add eax, dword [0x4b9f94]
cmp eax, dword [0x4e9ea8]
jbe 0x5a0ca5
mov edx, dword [0x4e9ea8]
sub edx, dword [0x4e9ea0]
mov ecx, dword [0x4b9f90]
cmp dword [ecx + edx*4], 0
jbe 0x5a0ca5
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4b9f90]
mov ecx, dword [edx + eax*4]
push ecx
push 0x4ba27a
mov eax, dword [ebp + 8]
push eax
call fcn.005fcc36
add esp, 0xc
mov edi, eax
jmp 0x5a0ca5
xor eax, eax
cmp dword [0x4ea81c], 0
mov dword [ebp - 0x14], eax
je 0x5a09e2
cmp dword [0x4dcc4c], 0
je 0x5a09e2
cmp dword [esi + 0x251], 0
je 0x5a0937
lea edx, [ebp - 0x270]
mov ecx, dword [0x4e9ea8]
push edx
push 0x39
push ecx
call fcn.005ba9ca
add esp, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x40
mov edi, 1
cmp dword [ebp - 0x14], 0
jne 0x5a0953
mov eax, dword [ebp + 8]
mov byte [eax], 0x4e
jmp 0x5a09e2
mov edx, dword [ebp + 8]
mov cl, byte [ebp - 0x270]
mov byte [edx], cl
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
lea edx, [ebp + edi - 0x270]
mov ecx, dword [ebp + 8]
lea eax, [ecx + edi]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
cmp edi, dword [ebp - 0x14]
jge 0x5a09e2
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x2f
jne 0x5a0993
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x42
jmp 0x5a09cd
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x7c
jne 0x5a09a7
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x49
jmp 0x5a09cd
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x5a09bb
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x45
jmp 0x5a09cd
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5b
jne 0x5a09e2
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x53
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x40
inc edi
inc dword [ebp - 0x60]
inc dword [ebp - 0x54]
inc dword [ebp - 0x58]
cmp edi, dword [ebp - 0x14]
jl 0x5a097f
mov eax, dword [ebp + 8]
mov edx, dword [0x4e9ea8]
add eax, edi
push eax
push 0x36
push edx
call fcn.005ba9ca
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x5a0ae5
cmp edi, dword [ebp - 0x14]
jge 0x5a0ae5
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [eax + edi - 1]
cmp edx, 0x45
je 0x5a0a28
mov ecx, dword [ebp + 8]
xor eax, eax
mov al, byte [ecx + edi - 1]
cmp eax, 0x53
jne 0x5a0a6f
mov ebx, dword [ebp - 0x14]
lea eax, [ebp - 0x270]
sub ebx, edi
add eax, edi
push ebx
push eax
mov edx, dword [ebp + 8]
add edx, edi
push edx
call fcn.005f953a
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi]
mov dword [ebp - 0x60], edx
cmp ebx, dword [ebp - 0xc]
jle 0x5a0ae5
mov ecx, dword [ebp - 0x60]
or byte [ecx], 2
inc dword [ebp - 0xc]
inc dword [ebp - 0x60]
cmp ebx, dword [ebp - 0xc]
jg 0x5a0a5c
jmp 0x5a0ae5
mov eax, dword [0x4ea4b4]
and eax, 0xf0
cmp eax, 0x10
jne 0x5a0ab4
push 0
mov eax, dword [0x4ea508]
mov edx, dword [ebp + 0xc]
add edx, edi
push edx
mov edx, dword [0x4ea520]
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
lea ecx, [ebp - 0x270]
push eax
push edx
add ecx, edi
mov eax, dword [0x4e9ea8]
push ecx
push eax
call fcn.005622d2
add esp, 0x1c
mov ebx, eax
jmp 0x5a0ae5
push 0
mov ecx, dword [0x4ea520]
mov eax, dword [ebp + 0xc]
add eax, edi
push eax
lea eax, [ebp - 0x270]
mov edx, dword [ebp + 8]
add edx, edi
add eax, edi
push edx
push 0
push ecx
push eax
mov edx, dword [0x4e9ea8]
push edx
call fcn.005622d2
add esp, 0x1c
mov ebx, eax
test ebx, ebx
jne 0x5a0b5b
lea eax, [ebp - 0x170]
mov edx, dword [0x4e9ea8]
push eax
push 0x3d
push edx
call fcn.005ba9ca
add esp, 0xc
mov ebx, eax
test ebx, ebx
jle 0x5a0b5b
push 0x4ba280
mov eax, dword [ebp + 8]
add eax, edi
push eax
call fcn.005fcc36
add esp, 8
mov edx, dword [ebp + 8]
add edi, eax
xor eax, eax
push esi
push edi
add edx, edi
lea edi, [ebp - 0x170]
or ecx, 0xffffffff
mov esi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push ebx
push 2
mov eax, dword [ebp + 0xc]
add eax, edi
push eax
call fcn.005f95aa
add esp, 0xc
test ebx, ebx
jne 0x5a0b78
mov edx, dword [ebp + 8]
mov ecx, dword [0x4e9ea8]
add edx, edi
push edx
push 0x37
push ecx
call fcn.005ba9ca
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x5a0bad
cmp dword [0x4eab4c], 0
je 0x5a0bad
mov eax, dword [0x4eab4c]
mov edx, dword [eax + 0x3e1]
cmp edx, dword [0x4e9ea8]
jne 0x5a0bad
push 0x4ba28c
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005fcc36
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x5a0bec
mov eax, dword [ebp + 8]
push esi
add eax, edi
push edi
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4ea0b4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
mov eax, dword [ebp + 8]
add eax, edi
pop esi
push eax
call fcn.005f96de
pop ecx
mov ebx, eax
lea eax, [ebp - 0x170]
mov edx, dword [0x4e9ea8]
push eax
push 0x3a
push edx
call fcn.005bac42
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x5a0c60
lea eax, [ebp - 0x170]
mov edx, 0x4ba2a9
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x5a0c60
test cl, cl
je 0x5a0c34
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x5a0c60
add eax, 2
add edx, 2
test cl, cl
jne 0x5a0c18
jne 0x5a0c60
mov eax, dword [ebp + 8]
mov edx, 0x4ba2c1
add eax, edi
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x5a0c60
test cl, cl
je 0x5a0c5c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x5a0c60
add eax, 2
add edx, 2
test cl, cl
jne 0x5a0c40
jne 0x5a0c60
xor ebx, ebx
add edi, ebx
cmp dword [ebp - 8], 0
jle 0x5a0ca5
mov eax, dword [ebp - 8]
add eax, edi
cmp eax, 0xfd
jge 0x5a0ca5
test ebx, ebx
jle 0x5a0c88
mov edx, dword [ebp + 8]
mov byte [edx + edi], 0x3b
inc edi
mov ecx, dword [ebp + 8]
mov byte [ecx + edi], 0x20
inc edi
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x170]
inc eax
push eax
push edx
mov ecx, dword [ebp + 8]
add ecx, edi
push ecx
call fcn.005f953a
add esp, 0xc
add edi, dword [ebp - 8]
cmp dword [0x4ea820], 0
je 0x5a0d13
mov eax, dword [0x4e9ea8]
sub eax, dword [0x4e9ea0]
mov edx, dword [0x4ea820]
test byte [edx + eax], 0x40
je 0x5a0cda
test edi, edi
jne 0x5a0cd4
mov ecx, dword [ebp + 8]
mov edi, 1
mov byte [ecx], 0x20
mov eax, dword [ebp + 0xc]
or byte [eax], 8
mov edx, dword [0x4e9ea8]
sub edx, dword [0x4e9ea0]
mov ecx, dword [0x4ea820]
test byte [ecx + edx], 0x20
je 0x5a0d13
test edi, edi
jne 0x5a0cfc
mov eax, dword [ebp + 8]
mov byte [eax], 0x20
cmp edi, 2
jge 0x5a0d0d
mov edx, dword [ebp + 8]
mov edi, 2
mov byte [edx + 1], 0x20
mov eax, dword [ebp + 0xc]
or byte [eax], 0x20
cmp edi, 0x100
jle 0x5a0e3e
mov edi, 0x100
jmp 0x5a0e3e
xor eax, eax
mov edi, eax
mov edx, dword [ebp + 8]
mov byte [edx + eax], 0
jmp 0x5a0e3e
cmp dword [ebp - 0x18], 0xd000
jne 0x5a0e3e
mov ecx, dword [0x4ea810]
cmp ecx, dword [esi + 0x385]
jbe 0x5a0d6c
mov eax, dword [0x4e9ea8]
cmp eax, dword [esi + 0x389]
jae 0x5a0d6c
mov edx, dword [ebp + 0x10]
mov dword [edx], 8
jmp 0x5a0d73
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov dword [ecx], eax
cmp dword [ebp + 0x18], 2
jne 0x5a0df6
mov edx, dword [ebp + 8]
xor eax, eax
push esi
or ecx, 0xffffffff
mov edi, 0x4e9fb4
mov esi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.005f96de
pop ecx
mov edi, eax
cmp dword [0x4ea814], 0
je 0x5a0e3e
mov eax, dword [0x4ea810]
cmp eax, dword [0x4e9ea8]
jbe 0x5a0e3e
mov edx, dword [0x4ea810]
mov ecx, dword [0x4ea818]
sub edx, dword [0x4e9ea8]
mov eax, dword [0x4ea814]
push edx
push ecx
push eax
call fcn.005f97de
add esp, 0xc
test eax, eax
je 0x5a0e3e
mov edx, dword [ebp + 0x10]
or dword [edx], 2
jmp 0x5a0e3e
cmp dword [ebp + 0x18], 3
jne 0x5a0e33
mov ecx, dword [ebp + 8]
push esi
mov esi, ecx
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4ea0b4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [ebp + 8]
push eax
call fcn.005f96de
pop ecx
mov edi, eax
jmp 0x5a0e3e
xor eax, eax
mov edx, dword [ebp + 8]
mov edi, eax
mov byte [edx + eax], 0
cmp dword [ebp + 0x18], 0
jle 0x5a0e4d
test byte [esi + 0x257], 1
jne 0x5a0e56
cmp dword [esi + 0x24d], 0
je 0x5a0e5c
mov ecx, dword [ebp + 0x10]
or dword [ecx], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret