Function at 0x59a9a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x5e3385
push eax
mov eax, 0x1494
mov dword fs:[0], esp
call fcn.005bd2d0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14b4]
push edi
mov ebp, ecx
mov eax, dword [esi + 0x14]
cmp eax, 0xffffffff
je 0x59a9da
push eax
call fcn.00599c90
lea ecx, [esp + 0x314]
call fcn.005806a0
mov eax, dword [esp + 0x14b4]
xor ebx, ebx
mov dword [ebp + 0x12c], eax
mov word [ebp + 0xf4], bx
mov word [ebp + 0xf6], bx
mov word [ebp + 0xf8], bx
mov cx, word [esi + 0x38]
mov dword [esp + 0x14ac], ebx
mov word [ebp + 0x130], cx
lea ecx, [esp + 0x48]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x74], ebx
call fcn.00559c60
mov eax, dword [ebp + 0xcc]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x3c]
push eax
push ecx
lea ecx, [esp + 0x31c]
mov byte [esp + 0x14b4], 1
mov dword [esp + 0x34], edx
call fcn.00580c40
cmp ax, bx
jg 0x59aa89
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], bl
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
movsx eax, ax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0xb0], eax
jle 0x59ab51
push edi
lea ecx, [esp + 0x318]
call fcn.00580d80
lea ecx, [esp + 0x314]
call fcn.00581350
cmp eax, 8
lea ecx, [esp + 0x314]
jbe 0x59ab08
call fcn.00581350
mov esi, eax
lea ecx, [esp + 0x314]
add word [ebp + 0xf6], si
call fcn.00581340
lea ecx, [eax + 8]
cmp esi, ebx
mov word [ebp + 0xf8], cx
jle 0x59ab41
mov ax, word [ebp + 0xf4]
mov edx, 1
shl edx, cl
or ax, dx
dec ecx
dec esi
jne 0x59aaf1
mov word [ebp + 0xf4], ax
jmp 0x59ab41
call fcn.00581350
mov esi, eax
lea ecx, [esp + 0x314]
add word [ebp + 0xf6], si
call fcn.00581340
cmp esi, ebx
mov word [ebp + 0xf8], ax
mov ecx, eax
jle 0x59ab41
mov eax, 1
shl eax, cl
or word [ebp + 0xf4], ax
dec ecx
dec esi
jne 0x59ab2f
mov eax, dword [esp + 0xb0]
inc edi
cmp edi, eax
jl 0x59aa9d
cmp eax, ebx
mov dword [esp + 0x6c], ebx
jle 0x59d91d
jmp 0x59ab63
mov ebx, dword [esp + 0x6c]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x17c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x48]
stosb byte es:[edi], al
call fcn.0055a260
push ebx
lea ecx, [esp + 0x318]
call fcn.00580d80
test ebx, ebx
jne 0x59abd3
lea ecx, [esp + 0x314]
call fcn.00581350
shr eax, 3
jne 0x59abcd
mov cx, word [ebp + 0xf6]
test cx, cx
jbe 0x59abcd
and ecx, 0xffff
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [ebp + 0x138], edx
jmp 0x59abd3
mov dword [ebp + 0x138], eax
lea ecx, [esp + 0x314]
call fcn.005aee50
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd4]
lea ebx, [ebp + 0xe0]
push eax
mov ecx, ebx
call fcn.005a0010
mov ecx, dword [ebx + 4]
mov dword [esp + 0x1c], eax
cmp eax, ecx
je 0x59ac1a
mov edx, dword [esp + 0xd4]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x59ac1a
lea eax, [esp + 0x1c]
jmp 0x59ac28
mov dword [esp + 0x114], ecx
lea eax, [esp + 0x114]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xe4]
cmp eax, ecx
mov dword [esp + 0x80], eax
jne 0x59af50
mov esi, dword [esp + 0x2c]
cmp esi, 2
je 0x59ac4d
cmp esi, 3
jne 0x59ac58
mov dword [esp + 0x32c], 0xff
mov eax, dword [esp + 0x14b8]
push 0
mov ecx, dword [eax + 0x4c]
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.005764e0
lea edx, [esp + 0x48]
push 0
push edx
lea eax, [esp + 0x7c]
push 3
push eax
push 0
lea ecx, [esp + 0x190]
push 0
lea edx, [esp + 0x32c]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00579f40
cmp eax, 1
jne 0x59af30
lea ecx, [esp + 0x290]
call fcn.00558060
lea ecx, [esp + 0x294]
mov byte [esp + 0x14ac], 2
call fcn.00559c60
push ecx
lea ecx, [esp + 0x4c]
mov eax, esp
mov dword [esp + 0x28], esp
push eax
mov byte [esp + 0x14b4], 3
call fcn.0055a190
lea ecx, [esp + 0x294]
call fcn.00558390
mov cl, byte [esp + 0x48]
sub esp, 0x24
mov edi, esp
mov dword [esp + 0x48], esp
mov dword [esp + 0x48], edi
mov byte [edi], cl
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x59ad0a
xor eax, eax
jmp 0x59ad13
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x59ad19
xor eax, eax
shl eax, 4
push eax
call fcn.005bcf2f
add esp, 4
mov dword [edi + 4], eax
mov edx, dword [esp + 0x74]
mov ecx, edi
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
call fcn.00555460
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
lea ecx, [esp + 0x7c]
add edi, 0x10
push ecx
mov ecx, edi
mov byte [esp + 0x14d4], 4
call fcn.00412410
mov dl, byte [esp + 0x8c]
lea ecx, [esp + 0x2b8]
mov byte [edi + 0x10], dl
mov byte [esp + 0x14d0], 3
call fcn.00559e10
lea ecx, [esp + 0x314]
call fcn.005aee50
lea ecx, [esp + 0x290]
mov dword [esp + 0x138], eax
lea eax, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x140]
mov dword [esp + 0x28], eax
call fcn.00558070
lea eax, [esp + 0x294]
lea edx, [esp + 0x140]
push eax
lea ecx, [esp + 0x144]
mov byte [esp + 0x14b0], 5
mov dword [esp + 0x20], edx
call fcn.005553f0
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x14ac], 6
push ecx
lea ecx, [esp + 0x154]
call fcn.005525e0
mov dl, byte [esp + 0x2b4]
mov byte [esp + 0x160], dl
mov eax, dword [esp + 0x138]
lea ecx, [esp + 0x2bc]
lea edx, [esp + 0x13c]
mov dword [esp + 0x24], ecx
push edx
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x14b0], 7
mov dword [esp + 0x2bc], eax
call fcn.00558070
lea ecx, [esp + 0x140]
lea eax, [esp + 0x2c0]
push ecx
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x14b0], 8
mov dword [esp + 0x20], eax
call fcn.005553f0
lea edx, [esp + 0x150]
lea ecx, [esp + 0x2d0]
push edx
mov byte [esp + 0x14b0], 9
call fcn.005525e0
mov al, byte [esp + 0x160]
mov byte [esp + 0x2e0], al
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x14ac], 0xa
push ecx
lea edx, [esp + 0x310]
mov ecx, ebx
push edx
call fcn.0059eea0
lea eax, [esp + 0x2bc]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x14ac], 0xb
call fcn.00559d60
lea ecx, [esp + 0x2bc]
mov byte [esp + 0x14ac], 7
call fcn.005581a0
lea ecx, [esp + 0x13c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x140]
mov byte [esp + 0x14ac], 0xc
call fcn.00559d60
lea ecx, [esp + 0x13c]
mov byte [esp + 0x14ac], 3
call fcn.005581a0
lea ecx, [esp + 0x294]
mov byte [esp + 0x14ac], 0xd
call fcn.00559d60
lea ecx, [esp + 0x290]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
jmp 0x59b032
cmp eax, 0xffffffff
je case.0x59b046.13
cmp esi, 0x23
je case.0x59b046.13
cmp esi, 0x10
jne 0x59d6a1
jmp 0x59b032
lea ecx, [eax + 0x10]
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59af8d
mov edx, dword [esp + 0x80]
push edi
lea ecx, [edx + 0x10]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
mov eax, dword [esp + 0x80]
inc edi
lea ecx, [eax + 0x10]
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59af5f
mov edx, dword [esp + 0x80]
lea ecx, [edx + 0x10]
call fcn.00558520
lea ecx, [esp + 0x80]
mov dword [esp + 0x74], eax
call fcn.0059ed90
mov edi, eax
mov al, byte [edi + 8]
add edi, 8
sub esp, 0x24
mov ebx, esp
mov dword [esp + 0x48], esp
mov dword [esp + 0x48], ebx
mov byte [ebx], al
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x59afce
xor eax, eax
jmp 0x59afd6
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x59afdc
xor eax, eax
shl eax, 4
push eax
call fcn.005bcf2f
add esp, 4
mov dword [ebx + 4], eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00555460
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
add edi, 0x10
add ebx, 0x10
push edi
mov ecx, ebx
mov byte [esp + 0x14d4], 0xe
call fcn.00412410
mov cl, byte [edi + 0x10]
mov byte [esp + 0x14d0], 1
mov byte [ebx + 0x10], cl
lea ecx, [esp + 0x6c]
call fcn.00559e10
mov esi, dword [esp + 0x2c]
lea eax, [esi - 1]
cmp eax, 0x28
ja case.0x59b046.13
xor edx, edx
mov dl, byte [eax + 0x59d99c]
jmp dword [edx*4 + 0x59d968]
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x48]
push 0
push eax
call fcn.0057b9c0
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x30]
mov byte [esp + 0x14ac], 0xf
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59b0a7
push edi
lea ecx, [esp + 0x34]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x30]
inc edi
call fcn.00558520
movsx edx, ax
cmp edi, edx
jl 0x59b085
lea ecx, [esp + 0x314]
call fcn.00581350
mov edi, eax
shr edi, 3
jne 0x59b0e3
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59b242
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
test edi, edi
jle 0x59b242
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov ebx, eax
mov eax, dword [ebp + 0x12c]
cmp eax, 0xffffffff
je 0x59b17f
xor esi, esi
test eax, eax
jle 0x59b242
cmp dword [esp + 0x2c], 0x28
jne 0x59b131
xor eax, eax
test edi, edi
jle 0x59b12d
lea ecx, [esp + ebx + 0x17c]
cmp byte [ecx + eax], 0
jne 0x59b131
inc eax
cmp eax, edi
jl 0x59b122
add ebx, edi
jmp 0x59b16f
push 0
push esi
lea ecx, [esp + ebx + 0x184]
push edi
push ecx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59b242
and eax, 0xffff
lea ecx, [esp + 0x30]
add ebx, eax
call fcn.00558520
movsx edx, ax
cmp ebx, edx
jg 0x59b242
mov eax, dword [ebp + 0x12c]
inc esi
cmp esi, eax
jl 0x59b10e
jmp 0x59b242
cmp word [ebp + 0x130], 0
jne 0x59b1c8
cmp dword [esp + 0x2c], 0x28
jne 0x59b1b2
xor eax, eax
test edi, edi
jle 0x59b32c
lea ecx, [esp + ebx + 0x17c]
cmp byte [ecx], 0
jne 0x59b1b2
inc eax
inc ecx
cmp eax, edi
jge 0x59b32c
jmp 0x59b1a1
push 0
push 0
lea eax, [esp + ebx + 0x184]
push edi
push eax
mov ecx, ebp
call fcn.0059a380
jmp 0x59b242
lea ecx, [esp + 0x30]
xor esi, esi
call fcn.00558520
xor edx, edx
mov dx, word [ebp + 0x130]
movsx ecx, ax
add edx, ebx
cmp edx, ecx
jg 0x59b242
cmp dword [esp + 0x2c], 0x28
jne 0x59b208
xor eax, eax
test edi, edi
jle 0x59b204
lea ecx, [esp + ebx + 0x17c]
cmp byte [ecx], 0
jne 0x59b208
inc eax
inc ecx
cmp eax, edi
jl 0x59b1f9
add ebx, edi
jmp 0x59b227
push 0
push esi
lea eax, [esp + ebx + 0x184]
push edi
push eax
mov ecx, ebp
call fcn.0059a380
xor ecx, ecx
mov cx, word [ebp + 0x130]
add ebx, ecx
inc esi
lea ecx, [esp + 0x30]
call fcn.00558520
movsx edx, ax
xor eax, eax
mov ax, word [ebp + 0x130]
add eax, ebx
cmp eax, edx
jle 0x59b1e5
mov ecx, dword [esp + 0x14b8]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x59b259
push eax
mov ecx, ebp
call fcn.00599c90
cmp dword [esp + 0x2c], 0xb
jne 0x59b32c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov cl, byte [esp + eax + 0x17c]
test cl, cl
je 0x59b32c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
cmp byte [esp + eax + 0x17b], 0x28
je 0x59b32c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
cmp byte [esp + eax + 0x17b], 8
je 0x59b32c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov cl, byte [esp + eax + 0x17b]
test cl, cl
je 0x59b32c
lea ecx, [esp + 0x48]
call fcn.0055a260
lea edx, [esp + 0x48]
push 0
push edx
lea eax, [esp + 0x7c]
push 3
push eax
push 0
lea ecx, [esp + 0x190]
push 0
lea edx, [esp + 0x32c]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00579f40
mov eax, dword [esp + 0xe8]
mov byte [esp + 0x14ac], 1
inc eax
lea ecx, [esp + 0x30]
cmp eax, 0xff
mov dword [esp + 0xe8], eax
jg 0x59d67f
call fcn.005581a0
jmp case.0x59b046.1
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x30]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
call fcn.00575730
xor edi, edi
cmp esi, 2
jne 0x59b362
cmp eax, 0x10
jne 0x59b362
mov eax, dword [ebp + 0xd4]
mov edi, dword [eax + 0x2014]
jmp 0x59b374
lea ecx, [esp + 0x48]
push 0
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.0057b9c0
lea ecx, [esp + 0x314]
call fcn.00581350
mov ebx, eax
shr ebx, 3
jne 0x59b3b0
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59b4a2
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax + 1]
test ebx, ebx
jle 0x59b4a2
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov ecx, dword [ebp + 0x12c]
add eax, edi
cmp ecx, 0xffffffff
mov dword [esp + 0x14], eax
je 0x59b4c2
mov eax, ecx
xor edi, edi
test eax, eax
jle 0x59b4a2
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x59b4a2
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
cmp edi, edx
jae 0x59b4a2
xor esi, esi
test ebx, ebx
jle 0x59b43b
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea edx, [esi + ecx]
lea ecx, [eax + edi*4]
push edx
call fcn.00558380
mov byte [esp + esi + 0x2e4], al
inc esi
cmp esi, ebx
jl 0x59b411
test edi, edi
jne 0x59b44a
cmp dword [esp + 0x2c], 3
jne 0x59b44a
dec dword [esp + 0x14]
mov al, byte [esp + 0x2e4]
cmp al, 0xff
jne 0x59b461
cmp byte [esp + 0x2e5], 0xff
je 0x59b4a2
jmp 0x59b470
test al, al
jne 0x59b470
mov al, byte [esp + 0x2e5]
test al, al
je 0x59b4a2
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [esp + 0x2e4]
lea eax, [eax + edi*4]
push eax
push edi
push ebx
push ecx
mov ecx, ebp
call fcn.0059a380
mov eax, dword [ebp + 0x12c]
inc edi
cmp edi, eax
jl 0x59b3e5
mov eax, dword [esp + 0x14b8]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je case.0x59b046.13
push eax
mov ecx, ebp
call fcn.00599c90
jmp case.0x59b046.13
mov esi, eax
xor edi, edi
mov dword [esp + 0x1c], esi
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x59b4a2
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
cmp edi, edx
jae 0x59b4a2
push 0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], esi
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.00558520
movsx eax, ax
add esi, ebx
cmp esi, eax
jge 0x59b5dd
xor esi, esi
test ebx, ebx
jle 0x59b53f
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea edx, [esi + ecx]
lea ecx, [eax + edi*4]
push edx
call fcn.00558380
mov byte [esp + esi + 0x27c], al
inc esi
cmp esi, ebx
jl 0x59b515
test edi, edi
jne 0x59b54e
cmp dword [esp + 0x2c], 3
jne 0x59b54e
dec dword [esp + 0x14]
mov al, byte [esp + 0x27c]
cmp al, 0xff
jne 0x59b569
cmp byte [esp + 0x27d], 0xff
je 0x59b4a2
jmp 0x59b57c
test al, al
jne 0x59b57c
mov al, byte [esp + 0x27d]
test al, al
je 0x59b4a2
push 0
lea ecx, [esp + 0x4c]
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [esp + 0x27c]
lea eax, [eax + edi*4]
push eax
push edi
push ebx
push ecx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59b5dd
mov esi, dword [esp + 0x14]
and eax, 0xffff
add esi, eax
push 0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], esi
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.00558520
movsx edx, ax
add esi, ebx
cmp esi, edx
jl 0x59b50f
mov esi, dword [esp + 0x1c]
inc edi
jmp 0x59b4ca
lea ecx, [esp + 0x314]
call fcn.0058a1a0
lea ecx, [esp + 0x48]
push 0
mov ebx, eax
push ecx
mov ecx, dword [ebp + 0xd4]
mov dword [esp + 0x24], ebx
call fcn.0057b9c0
lea edx, [esp + 0x98]
lea ecx, [esp + 0x48]
push edx
call fcn.0055a190
lea ecx, [esp + 0x98]
mov byte [esp + 0x14ac], 0x10
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59b65f
push edi
lea ecx, [esp + 0x9c]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x98]
inc edi
call fcn.00558520
movsx eax, ax
cmp edi, eax
jl 0x59b637
lea ecx, [esp + 0x314]
call fcn.00581350
mov esi, eax
shr esi, 3
jne 0x59b69b
mov ax, word [ebp + 0xf6]
xor edi, edi
cmp ax, di
jbe 0x59b69d
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea esi, [edx + ecx + 1]
jmp 0x59b69d
xor edi, edi
mov eax, dword [esp + 0x2c]
sub eax, 4
je 0x59b8e8
dec eax
je 0x59b7af
sub eax, 2
jne 0x59b9c3
cmp esi, edi
jle 0x59b9c3
cmp dword [ebp + 0x12c], 0xffffffff
je 0x59b73d
cmp esi, edi
mov dword [esp + 0x14], edi
jle 0x59b9c3
lea edi, [esp + ebx + 0x17c]
mov edx, dword [esp + 0x14]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59b725
mov al, byte [esp + 0x1c]
mov cl, byte [esp + 0x14]
add al, cl
push 0
push 0
lea ecx, [esp + 0x16c]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x174], al
mov byte [esp + 0x175], bl
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b6eb
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x59b6de
jmp 0x59b9c3
cmp esi, edi
mov dword [esp + 0x20], edi
jle 0x59b9c3
lea edi, [esp + ebx + 0x17c]
mov edx, dword [esp + 0x20]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59b797
mov al, byte [esp + 0x20]
mov cl, byte [esp + 0x1c]
add al, cl
push 0
push 0
lea ecx, [esp + 0x178]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x180], al
mov byte [esp + 0x181], bl
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b75d
mov eax, dword [esp + 0x20]
inc eax
cmp eax, esi
mov dword [esp + 0x20], eax
jl 0x59b750
jmp 0x59b9c3
cmp esi, edi
jle 0x59b9c3
cmp dword [ebp + 0x12c], 0xffffffff
je 0x59b858
cmp esi, edi
mov dword [esp + 0x14], edi
jle 0x59b9c3
lea edi, [esp + 0x17c]
jmp 0x59b7dd
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
lea eax, [ebx + edx]
mov cl, byte [eax + edi]
and eax, 0x80000001
mov byte [esp + 0x13], cl
jns 0x59b7f7
dec eax
or eax, 0xfffffffe
inc eax
jne 0x59b836
xor ebx, ebx
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59b82e
mov al, byte [esp + 0x1c]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x23]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x2b], al
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b7fb
jmp 0x59b846
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.00599d50
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x59b7d9
jmp 0x59b9c3
cmp esi, edi
mov dword [esp + 0x20], edi
jle 0x59b9c3
lea edi, [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dl, byte [eax + edi]
and eax, 0x80000001
mov byte [esp + 0x1b], dl
jns 0x59b888
dec eax
or eax, 0xfffffffe
inc eax
jne 0x59b8c6
xor ebx, ebx
mov al, byte [esp + 0x1b]
mov cl, bl
shr al, cl
test al, 1
je 0x59b8be
mov al, byte [esp + 0x20]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b88c
jmp 0x59b8d6
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.00599d50
mov eax, dword [esp + 0x20]
inc eax
cmp eax, esi
mov dword [esp + 0x20], eax
jl 0x59b86b
jmp 0x59b9c3
cmp esi, edi
jle 0x59b9c3
cmp dword [ebp + 0x12c], 0xffffffff
je 0x59b961
cmp esi, edi
mov dword [esp + 0x14], edi
jle 0x59b9c3
lea edi, [esp + ebx + 0x17c]
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59b94c
mov al, byte [esp + 0x1c]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b919
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x59b90c
jmp 0x59b9c3
cmp esi, edi
mov dword [esp + 0x20], edi
jle 0x59b9c3
lea edi, [esp + ebx + 0x17c]
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59b9b0
mov al, byte [esp + 0x20]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0059a380
inc ebx
cmp ebx, 8
jl 0x59b97d
mov eax, dword [esp + 0x20]
inc eax
cmp eax, esi
mov dword [esp + 0x20], eax
jl 0x59b970
mov eax, dword [esp + 0x14b8]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x59b9da
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x98]
jmp 0x59d67f
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x84]
mov byte [esp + 0x14ac], 0x11
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59ba42
push edi
lea ecx, [esp + 0x88]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x84]
inc edi
call fcn.00558520
movsx edx, ax
cmp edi, edx
jl 0x59ba1a
lea ecx, [esp + 0x314]
call fcn.00581350
mov esi, eax
shr esi, 3
mov dword [esp + 0x1c], esi
jne 0x59ba88
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59bc3b
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esp + 0x1c], ecx
mov esi, ecx
test esi, esi
jle 0x59bc3b
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov dword [esp + 0x14], eax
xor eax, eax
mov edi, 0x619c18
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov dl, byte [esp + 0x2b]
push 1
not ecx
dec ecx
mov byte [esp + 0xdc], dl
mov ebx, ecx
lea ecx, [esp + 0xdc]
push ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
call fcn.004018c0
test al, al
je 0x59bb16
mov edi, dword [esp + 0xdc]
mov ecx, ebx
mov eax, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xdc]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xe0], ebx
mov byte [ecx + ebx], 0
xor edi, edi
test esi, esi
jle 0x59bbf4
mov edx, dword [esp + 0x14]
lea eax, [esp + edx + 0x17c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dl, byte [ecx + edi]
mov byte [esp + 0x1b], dl
mov al, byte [esp + 0x1b]
mov cl, bl
shr al, cl
test al, 1
je 0x59bbdd
mov cl, byte [esp + 0x2b]
xor esi, esi
mov byte [esp + 0xec], cl
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
lea edx, [esp + 0xec]
lea ecx, [esp + 0x314]
push edx
mov byte [esp + 0x14b0], 0x13
call fcn.005811f0
mov eax, dword [esp + 0xf0]
mov dl, bl
push esi
push esi
mov cl, byte [eax]
lea eax, [esp + 0x300]
mov byte [esp + 0x300], cl
inc dl
push 2
push eax
mov ecx, ebp
mov byte [esp + 0x309], dl
call fcn.0059a380
mov ecx, dword [esp + 0xf0]
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
inc ebx
cmp ebx, 8
jl 0x59bb3c
mov eax, dword [esp + 0x1c]
inc edi
cmp edi, eax
jl 0x59bb2f
mov eax, dword [esp + 0xdc]
mov byte [esp + 0x14ac], 0x11
test eax, eax
je 0x59bc24
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x59bc1b
cmp al, 0xff
je 0x59bc1b
dec al
mov byte [ecx], al
jmp 0x59bc24
push ecx
call fcn.005bc500
add esp, 4
xor eax, eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x14b8]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x59bc52
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x84]
jmp 0x59d67f
mov eax, dword [ebp + 0x12c]
or esi, 0xffffffff
cmp eax, esi
je 0x59d883
mov byte [esp + 0xd0], 1
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x48]
push 0
push eax
call fcn.0057b9c0
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x44]
mov byte [esp + 0x14ac], 0x14
call fcn.00558520
test ax, ax
jle 0x59bd86
lea ecx, [esp + 0x44]
xor esi, esi
call fcn.00558520
test ax, ax
jle 0x59bceb
push esi
lea ecx, [esp + 0x48]
call fcn.00558380
mov byte [esp + esi + 0x17c], al
lea ecx, [esp + 0x44]
inc esi
call fcn.00558520
movsx edx, ax
cmp esi, edx
jl 0x59bcc9
lea ecx, [esp + 0x314]
call fcn.00581350
mov esi, eax
shr esi, 3
jne 0x59bd23
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59bd86
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
test esi, esi
jle 0x59bd86
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov edi, eax
mov eax, dword [ebp + 0x12c]
test eax, eax
jle 0x59bd86
xor ebx, ebx
test eax, eax
jle 0x59bd86
push 0
push ebx
lea ecx, [esp + edi + 0x184]
push esi
push ecx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59bd86
and eax, 0xffff
lea ecx, [esp + 0x44]
add edi, eax
call fcn.00558520
movsx edx, ax
cmp edi, edx
jg 0x59bd86
mov eax, dword [ebp + 0x12c]
inc ebx
cmp ebx, eax
jl 0x59bd45
mov eax, dword [esp + 0xd0]
mov ecx, dword [ebp + 0x12c]
and eax, 0xff
cmp eax, ecx
jge 0x59bec9
mov cl, byte [esp + 0x2b]
xor esi, esi
mov byte [esp + 0x88], cl
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
lea edx, [esp + 0x88]
lea ecx, [esp + 0x314]
push edx
mov byte [esp + 0x14b0], 0x15
call fcn.005811f0
mov ecx, dword [esp + 0x8c]
cmp ecx, esi
jne 0x59bded
xor eax, eax
jmp 0x59bdf6
mov eax, dword [esp + 0x90]
sub eax, ecx
mov dl, byte [ecx + eax - 1]
inc dl
mov byte [ecx + eax - 1], dl
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x318]
call fcn.00581020
mov al, byte [esp + 0xd0]
lea ecx, [esp + 0x48]
push esi
inc al
push ecx
lea edx, [esp + 0x7c]
push 3
mov byte [esp + 0xdc], al
push edx
push esi
lea eax, [esp + 0x190]
push esi
lea ecx, [esp + 0x32c]
push eax
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.00579f40
cmp eax, 1
je 0x59be8e
cmp eax, 0xffffffff
jne 0x59d6dd
mov edx, dword [esp + 0x8c]
mov byte [esp + 0x14ac], 0x14
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
jmp 0x59bd86
mov eax, dword [esp + 0x8c]
push eax
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov byte [esp + 0x14ac], 1
call fcn.005581a0
jmp 0x59bc7f
mov ecx, dword [esp + 0x14b8]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x59bee0
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x44]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x48]
push 0
push edx
call fcn.0057b9c0
lea eax, [esp + 0x38]
lea ecx, [esp + 0x48]
push eax
call fcn.0055a190
xor edi, edi
lea ecx, [esp + 0x38]
mov byte [esp + 0x14ac], 0x16
mov dword [esp + 0x20], edi
call fcn.00558520
test ax, ax
jle 0x59bf53
push edi
lea ecx, [esp + 0x3c]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x38]
inc edi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59bf2d
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x314]
call fcn.00581350
shr eax, 3
mov dword [esp + 0x1c], eax
jne 0x59bf95
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59c9ed
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x59c9ed
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov esi, eax
mov eax, dword [esp + 0x2c]
sub eax, 0x14
mov dword [esp + 0x14], esi
je 0x59c6a3
dec eax
je 0x59c342
dec eax
jne 0x59c9ed
mov eax, dword [0x628600]
test eax, eax
jne 0x59c184
mov eax, dword [esp + 0x20]
mov cl, 0x10
cmp esi, eax
mov dword [0x628600], 1
mov byte [esp + 0x13], cl
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c015
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c027
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
test ax, ax
jne 0x59c058
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x59c9ed
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x59c9ed
jmp 0x59c15a
movzx di, cl
sub cl, 0x10
push 0
and ecx, 0xff
push ecx
push edi
mov ecx, ebp
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0xb8]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c097
xor edx, edx
jmp 0x59c0ad
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0xb8]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov edi, ecx
cmp edi, 0xfffffffd
mov dword [esp + 0x24], edi
jbe 0x59c0db
call fcn.005bc520
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x59c100
mov al, byte [ecx - 1]
test al, al
je 0x59c100
cmp al, 0xff
je 0x59c100
test edi, edi
jne 0x59c124
dec al
push edi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00401850
jmp 0x59c15a
test edi, edi
jne 0x59c10f
push 1
mov ecx, ebx
call fcn.00401850
jmp 0x59c15a
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x59c11b
cmp eax, edi
jae 0x59c12c
push 1
mov ecx, ebx
call fcn.00401850
push edi
mov ecx, ebx
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0xb8]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x14]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
mov byte [ebx + eax], 0
add ebx, eax
mov cl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x130]
inc cl
add esi, eax
mov eax, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x13], cl
mov dword [esp + 0x14], esi
jl 0x59bff3
jmp 0x59c9ed
cmp eax, 1
jne 0x59c9ed
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x59c9ed
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x59c9ed
xor cl, cl
mov dword [0x628600], 0
mov byte [esp + 0xcc], cl
cmp esi, dword [esp + 0x20]
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c1f3
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c205
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
test ax, ax
je 0x59c315
mov eax, dword [esp + 0xcc]
add cl, 0x20
movzx di, cl
and eax, 0xff
push 0
push eax
push edi
mov ecx, ebp
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0x104]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c253
xor edx, edx
jmp 0x59c269
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0x104]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x24], esi
jbe 0x59c297
call fcn.005bc520
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x59c2bc
mov al, byte [ecx - 1]
test al, al
je 0x59c2bc
cmp al, 0xff
je 0x59c2bc
test esi, esi
jne 0x59c2e0
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00401850
jmp 0x59c311
test esi, esi
jne 0x59c2cb
push 1
mov ecx, ebx
call fcn.00401850
jmp 0x59c311
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x59c2d7
cmp eax, esi
jae 0x59c2e8
push 1
mov ecx, ebx
call fcn.00401850
push esi
mov ecx, ebx
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x104]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0xcc]
xor eax, eax
mov ax, word [ebp + 0x130]
add esi, eax
inc cl
cmp cl, 0xff
mov dword [esp + 0x14], esi
mov byte [esp + 0xcc], cl
jb 0x59c1c7
jmp 0x59c9ed
mov eax, dword [0x628600]
test eax, eax
jne 0x59c50b
xor cl, cl
mov dword [0x628600], 1
mov byte [esp + 0x13], cl
mov byte [esp + 0xa4], cl
jmp 0x59c36c
mov cl, byte [esp + 0x13]
cmp esi, dword [esp + 0x20]
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c398
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c3aa
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
cmp ax, 1
jbe 0x59c4cc
test cl, cl
jne 0x59c3c2
cmp ax, 0x10
sbb edi, edi
neg edi
jmp 0x59c3c6
movzx di, cl
mov eax, dword [esp + 0xa4]
push 0
and eax, 0xff
mov ecx, ebp
push eax
push edi
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0xb4]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c404
xor edx, edx
jmp 0x59c41a
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xb4]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], esi
mov ebx, ecx
mov ecx, esi
call fcn.00412300
cmp eax, ebx
jae 0x59c44e
call fcn.005bc520
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x59c473
mov al, byte [ecx - 1]
test al, al
je 0x59c473
cmp al, 0xff
je 0x59c473
test ebx, ebx
jne 0x59c497
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.00401850
jmp 0x59c4c8
test ebx, ebx
jne 0x59c482
push 1
mov ecx, esi
call fcn.00401850
jmp 0x59c4c8
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x59c48e
cmp eax, ebx
jae 0x59c49f
push 1
mov ecx, esi
call fcn.00401850
push ebx
mov ecx, esi
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xb4]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov esi, dword [esp + 0x14]
mov al, byte [esp + 0x13]
test al, al
jne 0x59c4db
mov byte [esp + 0x13], 2
jmp 0x59c4df
inc byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x130]
add esi, eax
mov al, byte [esp + 0xa4]
inc al
mov dword [esp + 0x14], esi
cmp al, 8
mov byte [esp + 0xa4], al
jb 0x59c368
jmp 0x59c9ed
cmp eax, 1
jne 0x59c9ed
xor cl, cl
mov dword [0x628600], 0
mov byte [esp + 0xc4], cl
cmp esi, dword [esp + 0x20]
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c553
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c565
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
cmp ax, 1
jbe 0x59c676
mov eax, dword [esp + 0xc4]
add cl, 9
movzx di, cl
and eax, 0xff
push 0
push eax
push edi
mov ecx, ebp
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0x10c]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c5b4
xor edx, edx
jmp 0x59c5ca
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0x10c]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x24], esi
jbe 0x59c5f8
call fcn.005bc520
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x59c61d
mov al, byte [ecx - 1]
test al, al
je 0x59c61d
cmp al, 0xff
je 0x59c61d
test esi, esi
jne 0x59c641
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00401850
jmp 0x59c672
test esi, esi
jne 0x59c62c
push 1
mov ecx, ebx
call fcn.00401850
jmp 0x59c672
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x59c638
cmp eax, esi
jae 0x59c649
push 1
mov ecx, ebx
call fcn.00401850
push esi
mov ecx, ebx
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x10c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0xc4]
xor eax, eax
mov ax, word [ebp + 0x130]
add esi, eax
inc cl
cmp cl, 8
mov dword [esp + 0x14], esi
mov byte [esp + 0xc4], cl
jb 0x59c527
jmp 0x59c9ed
mov eax, dword [0x628600]
test eax, eax
jne 0x59c855
mov cl, 1
mov dword [0x628600], 1
mov byte [esp + 0x13], cl
mov byte [esp + 0xbc], al
cmp esi, dword [esp + 0x20]
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c6f3
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c705
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
test ax, ax
je 0x59c81f
cmp cl, 9
movzx di, cl
jne 0x59c719
xor edi, edi
mov eax, dword [esp + 0xbc]
push 0
and eax, 0xff
mov ecx, ebp
push eax
push edi
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0xc0]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c757
xor edx, edx
jmp 0x59c76d
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xc0]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], esi
mov ebx, ecx
mov ecx, esi
call fcn.00412300
cmp eax, ebx
jae 0x59c7a1
call fcn.005bc520
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x59c7c6
mov al, byte [ecx - 1]
test al, al
je 0x59c7c6
cmp al, 0xff
je 0x59c7c6
test ebx, ebx
jne 0x59c7ea
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.00401850
jmp 0x59c81b
test ebx, ebx
jne 0x59c7d5
push 1
mov ecx, esi
call fcn.00401850
jmp 0x59c81b
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x59c7e1
cmp eax, ebx
jae 0x59c7f2
push 1
mov ecx, esi
call fcn.00401850
push ebx
mov ecx, esi
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xc0]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x130]
inc cl
add esi, eax
mov al, byte [esp + 0xbc]
inc al
mov byte [esp + 0x13], cl
cmp al, 9
mov dword [esp + 0x14], esi
mov byte [esp + 0xbc], al
jb 0x59c6c7
jmp 0x59c9ed
cmp eax, 1
jne 0x59c9ed
xor cl, cl
mov dword [0x628600], 0
mov byte [esp + 0xa8], cl
cmp esi, dword [esp + 0x20]
jge 0x59c9ed
mov eax, dword [esp + 0x1c]
cmp eax, 2
jne 0x59c89d
movzx ax, byte [esp + esi + 0x17c]
movzx dx, byte [esp + esi + 0x17d]
shl eax, 8
add eax, edx
jmp 0x59c8af
cmp eax, 1
jne 0x59d74f
movzx ax, byte [esp + esi + 0x17c]
test ax, ax
je 0x59c9c5
mov eax, dword [esp + 0xa8]
add cl, 9
movzx di, cl
and eax, 0xff
push 0
push eax
push edi
mov ecx, ebp
call fcn.00599d50
and edi, 0xffff
lea ecx, [esp + 0xfc]
push edi
push 0x609488
push ecx
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59c8fd
xor edx, edx
jmp 0x59c913
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xfc]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], esi
mov ebx, ecx
mov ecx, esi
call fcn.00412300
cmp eax, ebx
jae 0x59c947
call fcn.005bc520
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x59c96c
mov al, byte [ecx - 1]
test al, al
je 0x59c96c
cmp al, 0xff
je 0x59c96c
test ebx, ebx
jne 0x59c990
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.00401850
jmp 0x59c9c1
test ebx, ebx
jne 0x59c97b
push 1
mov ecx, esi
call fcn.00401850
jmp 0x59c9c1
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x59c987
cmp eax, ebx
jae 0x59c998
push 1
mov ecx, esi
call fcn.00401850
push ebx
mov ecx, esi
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xfc]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0xa8]
xor eax, eax
mov ax, word [ebp + 0x130]
add esi, eax
inc cl
cmp cl, 6
mov dword [esp + 0x14], esi
mov byte [esp + 0xa8], cl
jb 0x59c871
mov ecx, dword [esp + 0x14b8]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x59ca04
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x38]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x48]
push 0
push edx
call fcn.0057b9c0
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x48]
push eax
call fcn.0055a190
xor esi, esi
lea ecx, [esp + 0x7c]
mov byte [esp + 0x14ac], 0x17
mov dword [esp + 0x20], esi
call fcn.00558520
test ax, ax
jle 0x59ca7a
push esi
lea ecx, [esp + 0x80]
call fcn.00558380
mov byte [esp + esi + 0x17c], al
lea ecx, [esp + 0x7c]
inc esi
call fcn.00558520
movsx ecx, ax
cmp esi, ecx
jl 0x59ca51
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x314]
call fcn.00581350
shr eax, 3
jne 0x59cab4
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59d78f
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
cmp eax, 2
jne 0x59d78f
lea ecx, [esp + 0x314]
call fcn.0058a1a0
cmp eax, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], 0
jge 0x59cd5e
lea edi, [esp + eax + 0x17c]
mov al, byte [esp + eax + 0x17c]
cmp al, 0x40
jbe 0x59cc0a
cmp al, 0xa0
je 0x59cb11
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x59cb0b
dec eax
or eax, 0xffffffe0
inc eax
je 0x59cc0a
mov ecx, dword [esp + 0x1c]
push 0
push ecx
push 1
push edi
mov ecx, ebp
call fcn.0059a380
xor edx, edx
lea eax, [esp + 0x9c]
mov dl, byte [edi]
push edx
push 0x609488
push eax
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59cb47
xor edx, edx
jmp 0x59cb5d
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebx, dword [ebp + 0x38]
lea eax, [edx + edx*8]
lea edi, [esp + 0x9c]
lea ecx, [edx + eax*2]
xor eax, eax
lea ebx, [ebx + ecx*4 - 0x4c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
cmp edi, 0xfffffffd
mov dword [esp + 0x24], edi
jbe 0x59cb8b
call fcn.005bc520
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x59cbb0
mov al, byte [ecx - 1]
test al, al
je 0x59cbb0
cmp al, 0xff
je 0x59cbb0
test edi, edi
jne 0x59cbd4
dec al
push edi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00401850
jmp 0x59cc0a
test edi, edi
jne 0x59cbbf
push 1
mov ecx, ebx
call fcn.00401850
jmp 0x59cc0a
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x59cbcb
cmp eax, edi
jae 0x59cbdc
push 1
mov ecx, ebx
call fcn.00401850
push edi
mov ecx, ebx
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x9c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
mov byte [ebx + eax], 0
add ebx, eax
mov eax, dword [esp + 0x14]
lea edi, [esp + eax + 0x17d]
mov al, byte [esp + eax + 0x17d]
cmp al, 0x40
jbe 0x59cd3a
cmp al, 0xa0
je 0x59cc42
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x59cc3c
dec eax
or eax, 0xffffffe0
inc eax
je 0x59cd3a
mov ecx, dword [esp + 0x1c]
push 0
push ecx
push 1
push edi
mov ecx, ebp
call fcn.0059a380
xor edx, edx
lea eax, [esp + 0x9c]
mov dl, byte [edi]
push edx
push 0x609488
push eax
call fcn.005bcf3d
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x59cc78
xor edx, edx
jmp 0x59cc8e
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebx, dword [ebp + 0x38]
lea eax, [edx + edx*8]
lea edi, [esp + 0x9c]
lea ecx, [edx + eax*2]
xor eax, eax
lea ebx, [ebx + ecx*4 - 0x4c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
cmp edi, 0xfffffffd
mov dword [esp + 0x24], edi
jbe 0x59ccbc
call fcn.005bc520
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x59cce1
mov al, byte [ecx - 1]
test al, al
je 0x59cce1
cmp al, 0xff
je 0x59cce1
test edi, edi
jne 0x59cd05
dec al
push edi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00401850
jmp 0x59cd36
test edi, edi
jne 0x59ccf0
push 1
mov ecx, ebx
call fcn.00401850
jmp 0x59cd36
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x59ccfc
cmp eax, edi
jae 0x59cd0d
push 1
mov ecx, ebx
call fcn.00401850
push edi
mov ecx, ebx
call fcn.004019e0
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x9c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cx, word [ebp + 0x130]
add eax, ecx
inc edx
cmp eax, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
jl 0x59cadd
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x7c]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x48]
push 0
push edx
call fcn.0057b9c0
lea eax, [esp + 0x78]
lea ecx, [esp + 0x48]
push eax
call fcn.0055a190
lea ecx, [esp + 0x78]
mov byte [esp + 0x14ac], 0x18
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59cdc9
push edi
lea ecx, [esp + 0x7c]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x78]
inc edi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59cda7
lea ecx, [esp + 0x314]
call fcn.00581350
shr eax, 3
mov dword [esp + 0x1c], eax
jne 0x59ce0b
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59cf25
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x59cf25
lea ecx, [esp + 0x314]
call fcn.0058a1a0
cmp word [ebp + 0x130], 0
mov edi, eax
jne 0x59ce8d
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x59cf25
mov esi, eax
mov al, byte [esp + edi + 0x17c]
test al, al
je 0x59ce84
xor ebx, ebx
mov dl, byte [esp + edi + 0x17c]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59ce7e
mov ecx, dword [esp + 0x2c]
xor eax, eax
cmp ecx, 0x1f
jne 0x59ce66
lea eax, [ebx + edi*8]
jmp 0x59ce72
cmp ecx, 0x1e
jne 0x59ce72
mov eax, edi
shl eax, 8
add eax, ebx
push 0
push 0
push eax
mov ecx, ebp
call fcn.00599d50
inc ebx
cmp ebx, 8
jl 0x59ce46
inc edi
dec esi
jne 0x59ce39
jmp 0x59cf25
lea ecx, [esp + 0x78]
xor esi, esi
call fcn.00558520
movsx eax, ax
cmp edi, eax
jge 0x59cf25
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jle 0x59cf09
mov dword [esp + 0x14], ebx
mov al, byte [esp + edi + 0x17c]
test al, al
je 0x59cef9
xor ebx, ebx
mov dl, byte [esp + edi + 0x17c]
mov cl, bl
shr dl, cl
test dl, 1
je 0x59cef3
mov ecx, dword [esp + 0x2c]
xor eax, eax
cmp ecx, 0x1f
jne 0x59cedc
lea eax, [ebx + edi*8]
jmp 0x59cee8
cmp ecx, 0x1e
jne 0x59cee8
mov eax, edi
shl eax, 8
add eax, ebx
push 0
push esi
push eax
mov ecx, ebp
call fcn.00599d50
inc ebx
cmp ebx, 8
jl 0x59cebc
mov eax, dword [esp + 0x14]
inc edi
dec eax
mov dword [esp + 0x14], eax
jne 0x59ceaf
mov ebx, dword [esp + 0x1c]
xor eax, eax
lea ecx, [esp + 0x78]
mov ax, word [ebp + 0x130]
add edi, eax
inc esi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59cea7
mov edx, dword [esp + 0x14b8]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x59cf3c
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x78]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x48]
push 0
push eax
call fcn.0057b9c0
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x40]
mov byte [esp + 0x14ac], 0x19
call fcn.00558520
test ax, ax
jle 0x59d833
lea ecx, [esp + 0x40]
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59cfb9
push edi
lea ecx, [esp + 0x44]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x40]
inc edi
call fcn.00558520
movsx edx, ax
cmp edi, edx
jl 0x59cf97
lea ecx, [esp + 0x314]
call fcn.00581350
mov ebx, eax
shr ebx, 3
jne 0x59cff5
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59d81c
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax + 1]
test ebx, ebx
jle 0x59d81c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov edi, eax
mov eax, dword [ebp + 0x12c]
or esi, 0xffffffff
cmp eax, esi
je 0x59d844
mov ecx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x134]
cmp eax, ecx
je 0x59d7cf
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x40]
jmp 0x59d67f
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x48]
push 0
push edx
call fcn.0057b9c0
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
push eax
call fcn.0055a190
lea ecx, [esp + 0x3c]
mov byte [esp + 0x14ac], 0x1a
call fcn.00558520
test ax, ax
jle 0x59d872
lea ecx, [esp + 0x3c]
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59d0ab
push edi
lea ecx, [esp + 0x40]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x3c]
inc edi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59d089
lea ecx, [esp + 0x314]
call fcn.00581350
mov ebx, eax
shr ebx, 3
jne 0x59d0e7
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59d1ba
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax + 1]
test ebx, ebx
jle 0x59d1ba
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov edi, eax
mov eax, dword [ebp + 0x12c]
cmp eax, 0xffffffff
je 0x59d159
xor esi, esi
test eax, eax
jle 0x59d1ba
push 0
push esi
lea ecx, [esp + edi + 0x184]
push ebx
push ecx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59d1ba
and eax, 0xffff
lea ecx, [esp + 0x3c]
add edi, eax
call fcn.00558520
movsx edx, ax
cmp edi, edx
jg 0x59d1ba
mov eax, dword [ebp + 0x12c]
inc esi
cmp esi, eax
jl 0x59d112
jmp 0x59d1ba
cmp word [ebp + 0x130], 0
jne 0x59d179
push 0
push 0
lea eax, [esp + edi + 0x184]
push ebx
push eax
mov ecx, ebp
call fcn.0059a380
jmp 0x59d1ba
lea ecx, [esp + 0x3c]
xor esi, esi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jge 0x59d1ba
push 0
push esi
lea edx, [esp + edi + 0x184]
push ebx
push edx
mov ecx, ebp
call fcn.0059a380
xor eax, eax
lea ecx, [esp + 0x3c]
mov ax, word [ebp + 0x130]
add edi, eax
inc esi
call fcn.00558520
movsx ecx, ax
cmp edi, ecx
jl 0x59d18b
mov edx, dword [esp + 0x14b8]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x59d1d1
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x3c]
jmp 0x59d67f
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov ecx, dword [ebp + 0xd4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x48]
push 0
push eax
call fcn.0057b9c0
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x70]
mov byte [esp + 0x14ac], 0x1b
xor edi, edi
call fcn.00558520
test ax, ax
jle 0x59d24c
push edi
lea ecx, [esp + 0x74]
call fcn.00558380
mov byte [esp + edi + 0x17c], al
lea ecx, [esp + 0x70]
inc edi
call fcn.00558520
movsx edx, ax
cmp edi, edx
jl 0x59d22a
lea ecx, [esp + 0x314]
call fcn.00581350
mov esi, eax
shr esi, 3
jne 0x59d288
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59d3b5
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
test esi, esi
jle 0x59d3b5
mov ecx, dword [ebp + 0xd4]
call fcn.0059ec00
mov ecx, dword [ebp + 0xd4]
call fcn.0059ec00
mov bl, al
lea ecx, [esp + 0x70]
and ebx, 0xff
call fcn.00558520
movsx ecx, ax
mov eax, dword [esp + 0x1c]
sub ecx, ebx
dec ecx
cmp eax, ecx
jle 0x59d2d6
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x70]
jmp 0x59d67f
xor ebx, ebx
test esi, esi
jle 0x59d3b5
lea edi, [esp + eax + 0x17c]
mov dl, byte [edi + ebx]
xor cl, cl
mov byte [esp + 0x1b], dl
mov byte [esp + 0x13], cl
mov al, byte [esp + 0x1b]
shr al, cl
test al, 1
je 0x59d39d
lea ecx, [esp + 0xcb]
push ecx
lea ecx, [esp + 0x12c]
call fcn.0055f310
lea edx, [esp + 0x128]
lea ecx, [esp + 0x314]
push edx
mov byte [esp + 0x14b0], 0x1c
call fcn.005811f0
mov al, byte [esp + 0x1c]
lea ecx, [esp + 0x2b]
add al, bl
push ecx
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2f], al
call fcn.0059ec10
lea edx, [esp + 0x13]
lea ecx, [esp + 0x128]
push edx
call fcn.0059ec10
push 0
push 0
lea ecx, [esp + 0x130]
call fcn.0057f860
push eax
push 0
lea ecx, [esp + 0x138]
call fcn.0057f870
push eax
mov ecx, ebp
call fcn.0059a380
lea ecx, [esp + 0x128]
mov byte [esp + 0x14ac], 0x1b
call fcn.00596390
mov cl, byte [esp + 0x13]
inc cl
cmp cl, 8
mov byte [esp + 0x13], cl
jb 0x59d2f4
inc ebx
cmp ebx, esi
jl 0x59d2e7
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x70]
jmp 0x59d67f
mov eax, dword [ebp + 0x12c]
or esi, 0xffffffff
cmp eax, esi
je 0x59d883
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x48]
push 0
push eax
call fcn.0057b9c0
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0055a190
lea ecx, [esp + 0x34]
mov byte [esp + 0x14ac], 0x1d
call fcn.00558520
test ax, ax
jle 0x59d673
lea ecx, [esp + 0x34]
xor esi, esi
call fcn.00558520
test ax, ax
jle 0x59d443
push esi
lea ecx, [esp + 0x38]
call fcn.00558380
mov byte [esp + esi + 0x17c], al
lea ecx, [esp + 0x34]
inc esi
call fcn.00558520
movsx edx, ax
cmp esi, edx
jl 0x59d421
lea ecx, [esp + 0x314]
call fcn.00581350
mov esi, eax
shr esi, 3
jne 0x59d47f
mov ax, word [ebp + 0xf6]
test ax, ax
jbe 0x59d65c
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
test esi, esi
jle 0x59d65c
lea ecx, [esp + 0x314]
call fcn.0058a1a0
mov ebx, eax
mov eax, dword [ebp + 0x12c]
test eax, eax
jle 0x59d65c
xor edi, edi
test eax, eax
jle 0x59d4ea
push 0
push edi
lea ecx, [esp + ebx + 0x184]
push esi
push ecx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59d4ea
and eax, 0xffff
lea ecx, [esp + 0x34]
add ebx, eax
call fcn.00558520
movsx edx, ax
cmp ebx, edx
jg 0x59d4ea
mov eax, dword [ebp + 0x12c]
inc edi
cmp edi, eax
jl 0x59d4a9
mov ecx, dword [ebp + 0x12c]
or eax, 0xffffffff
sub eax, edi
add ecx, eax
mov eax, ecx
mov dword [ebp + 0x12c], ecx
test eax, eax
jle 0x59d90c
mov esi, dword [esp + 0x6c]
lea ecx, [esp + 0xaf]
dec esi
push ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x70], esi
call fcn.0055f310
lea edx, [esp + 0x118]
lea ecx, [esp + 0x314]
push edx
mov byte [esp + 0x14b0], 0x1e
call fcn.005811f0
lea ecx, [esp + 0x118]
call fcn.0057f860
mov edi, eax
test edi, edi
jle 0x59d564
lea eax, [edi - 1]
lea ecx, [esp + 0x118]
push eax
call fcn.0057f870
inc byte [eax]
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x318]
call fcn.00581020
lea edx, [esp + 0x48]
push 0
push edx
lea eax, [esp + 0x7c]
push 3
push eax
push 0
lea ecx, [esp + 0x190]
push 0
lea edx, [esp + 0x32c]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00579f40
cmp eax, 1
je 0x59d5fb
cmp eax, 0xffffffff
jne 0x59d8ae
lea eax, [edi - 1]
lea ecx, [esp + 0x118]
push eax
call fcn.0057f870
mov cl, byte [eax]
push 0
inc cl
lea edx, [esp + 0x78]
mov byte [eax], cl
lea ecx, [esp + 0x4c]
push ecx
push 3
push edx
push 0
lea eax, [esp + 0x190]
push 0
lea ecx, [esp + 0x32c]
push eax
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.00579f40
cmp eax, 1
jne 0x59d5aa
lea ecx, [esp + 0x118]
mov byte [esp + 0x14ac], 0x1d
call fcn.00596390
lea ecx, [esp + 0x34]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x48]
push 0
push edx
call fcn.0057b9c0
lea eax, [esp + 0x34]
lea ecx, [esp + 0x48]
push eax
call fcn.0055a190
lea ecx, [esp + 0x34]
mov byte [esp + 0x14ac], 0x1d
call fcn.00558520
test ax, ax
jg 0x59d411
jmp 0x59d673
mov ecx, dword [esp + 0x14b8]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x59d673
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x34]
call fcn.005581a0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
inc eax
cmp eax, ecx
mov dword [esp + 0x6c], eax
jl 0x59ab5f
jmp 0x59d91d
mov edx, dword [esp + 0x14bc]
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
mov dword [edx], 1
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
mov eax, dword [esp + 0x14bc]
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [eax], 1
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov byte [esp + 0x14ac], 1
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
lea ecx, [esp + 0x38]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
lea ecx, [esp + 0x7c]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
mov eax, dword [ebp + 0x12c]
xor esi, esi
test eax, eax
jle 0x59d81c
push 0
push esi
lea edx, [esp + edi + 0x184]
push ebx
push edx
mov ecx, ebp
call fcn.0059a380
mov ax, word [ebp + 0x130]
test ax, ax
je 0x59d81c
and eax, 0xffff
lea ecx, [esp + 0x40]
add edi, eax
call fcn.00558520
movsx eax, ax
cmp edi, eax
jg 0x59d81c
mov eax, dword [ebp + 0x12c]
inc esi
cmp esi, eax
jl 0x59d7db
mov ecx, dword [esp + 0x14b8]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x59d833
push eax
mov ecx, ebp
call fcn.00599c90
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x40]
jmp 0x59d918
lea ecx, [esp + 0x40]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
mov dword [esp + 0x14ac], esi
jmp 0x59d939
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x3c]
jmp 0x59d918
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], esi
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
mov edx, dword [esp + 0x14bc]
lea ecx, [esp + 0x118]
mov byte [esp + 0x14ac], 0x1d
mov dword [edx], 1
call fcn.00596390
lea ecx, [esp + 0x34]
mov byte [esp + 0x14ac], 1
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
lea ecx, [esp + 0x314]
mov dword [esp + 0x14ac], 0xffffffff
call fcn.005807b0
xor eax, eax
jmp 0x59d94a
mov byte [esp + 0x14ac], 1
lea ecx, [esp + 0x34]
call fcn.005581a0
lea ecx, [esp + 0x48]
mov byte [esp + 0x14ac], 0
call fcn.00559d60
mov dword [esp + 0x14ac], 0xffffffff
lea ecx, [esp + 0x314]
call fcn.005807b0
mov eax, 1
mov ecx, dword [esp + 0x14a4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x14a0
ret 0xc