Function at 0x5d627e
Capabilities:
Encode data using base64
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb1c
push ebx
push esi
push edi
xor ebx, ebx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [ebp - 8], edx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x50], 0xbdf20da3
je 0x5d62af
mov eax, 0x15
jmp 0x5da88e
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [edx + 0x7c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0xc], edx
cmp dword [0x7a91f4], 0
jne 0x5da7e9
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x228], 0
je 0x5d62f9
mov eax, dword [ebp + 8]
push dword [eax + 0x228]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 0x228], eax
mov edx, dword [ebp + 8]
mov byte [edx + 0x230], 0
mov ecx, dword [ebp - 8]
xor eax, eax
mov dword [ecx + 0xcc], eax
mov edx, dword [ebp - 8]
test byte [edx + 8], 4
jne 0x5da848
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x78]
mov dword [ebp - 4], eax
test ebx, ebx
jne 0x5da7ba
cmp dword [0x7a91f4], 0
jne 0x5da7e9
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x18]
mov eax, dword [ebp - 4]
shl eax, 2
lea eax, [eax + eax*4]
add esi, eax
mov edx, dword [ebp - 8]
cmp dword [edx + 0x8c], 0
je 0x5d638d
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ebp - 0x10]
jne 0x5d638a
mov edx, dword [ebp - 8]
push dword [edx + 0x90]
mov ecx, dword [ebp - 8]
call dword [ecx + 0x8c]
pop ecx
test eax, eax
je 0x5d6385
mov ebx, 4
jmp case.0x5d639d.0
xor eax, eax
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x10]
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x86
ja case.0x5d639d.0
jmp dword [edx*4 + 0x5d63a4]
mov ecx, dword [ebp - 8]
test byte [ecx + 8], 4
jne 0x5da848
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x21c]
inc dword [edx + 0x21c]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
inc edx
mov dword [eax + ecx*4 + 0x8c], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x5d639d.0
mov eax, dword [ebp + 8]
dec dword [eax + 0x21c]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x21c]
mov eax, dword [ebp + 8]
mov edx, dword [eax + ecx*4 + 0x8c]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x2c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 4]
mov dword [edx + 0x7c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x78], edx
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 8]
mov dword [ecx + 0x84], eax
cmp dword [esi + 0xc], 0
je 0x5d666b
push 0
push dword [esi + 0xc]
mov edx, dword [ebp + 8]
add edx, 0x22c
push edx
call fcn.005d5293
add esp, 0xc
push dword [ebp + 8]
call fcn.005dc2b3
pop ecx
mov ebx, eax
cmp ebx, 5
jne 0x5d668f
mov eax, dword [ebp + 8]
mov dword [eax + 0x7c], 5
mov eax, 5
jmp 0x5da88e
mov edx, dword [ebp + 8]
cmp dword [edx + 0x7c], 0
je 0x5d66a2
mov eax, 1
jmp 0x5da88e
mov eax, 0x65
jmp 0x5da88e
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 4
mov eax, dword [esi + 4]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 0xa2
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x10], ecx
mov eax, dword [ebp - 0xc]
push dword [eax + 0x10]
call fcn.005dfc9c
pop ecx
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x1b], 1
push dword [ebp - 0xc]
call fcn.005dd0df
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
or word [eax + 0x18], 4
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0xa2
mov eax, dword [ebp - 0xc]
mov edx, dword [esi + 0xc]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
call fcn.005dfc9c
pop ecx
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1b], 1
push dword [ebp - 0xc]
call fcn.005dd174
pop ecx
mov ecx, dword [ebp - 0xc]
fstp qword [ecx + 8]
mov eax, dword [ebp - 0xc]
or word [eax + 0x18], 8
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx + 0x10]
push ecx
push dword [ebp - 0xc]
call fcn.005dce2b
add esp, 8
jmp case.0x5d639d.0
mov byte [esi], 0x17
mov eax, dword [ebp - 8]
cmp byte [eax + 0x10], 1
je case.0x5d639d.23
add dword [ebp - 0xc], 0x40
push 0
push 1
push 0xffffffffffffffff
push dword [esi + 0xc]
push dword [ebp - 0xc]
call fcn.005dd33e
add esp, 0x14
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx + 0x10]
push ecx
push dword [ebp - 0xc]
call fcn.005dce2b
add esp, 8
test eax, eax
jne 0x5da7e9
push dword [ebp - 0xc]
call fcn.005dce72
pop ecx
test eax, eax
jne 0x5da7e9
mov eax, dword [ebp - 0xc]
and word [eax + 0x18], 0xffbf
mov edx, dword [ebp - 0xc]
or word [edx + 0x18], 0x80
cmp dword [esi + 0x10], 0xffffffff
jne 0x5d67e8
push dword [esi + 0xc]
call fcn.005d51a5
pop ecx
mov dword [esi + 0x10], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x10]
mov dword [esi + 0xc], eax
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0xa2
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 8]
cmp byte [edx + 0x10], 1
jne 0x5d6830
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
call fcn.005dfc9c
pop ecx
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x14], eax
jmp 0x5d6846
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc]
push dword [eax + 0x10]
call fcn.005d4e6b
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x1b], dl
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [edx + 0x14], ecx
jmp case.0x5d639d.0
mov byte [esi], 0x75
push dword [esi + 0xc]
call fcn.005dfc9c
pop ecx
shr eax, 1
mov dword [esi + 4], eax
cmp dword [esi + 4], 0
je 0x5d68bc
push dword [esi + 0xc]
call fcn.005d5c6d
pop ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x5da7e9
cmp dword [esi + 0x10], 0xffffffff
jne 0x5d68ad
push dword [esi + 0xc]
call fcn.005d51a5
pop ecx
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xffffffff
jmp case.0x5d639d.117
cmp dword [esi + 0x10], 0xffffffff
jne 0x5d68cb
push dword [esi + 0xc]
call fcn.005d51a5
pop ecx
mov dword [esi + 0x10], 0xfffffffe
mov dword [esi + 0xc], 0x7ac317
add dword [ebp - 0xc], 0x40
push 0
push 0
push dword [esi + 4]
push dword [esi + 0xc]
push dword [ebp - 0xc]
call fcn.005dd33e
add esp, 0x14
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
dec edx
mov dword [ebp - 0x18], edx
add dword [ebp - 0xc], 0x40
push 0x80
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [ebp - 0x18]
shl edx, 6
add eax, edx
push eax
push dword [ebp - 0xc]
call fcn.005dd284
add esp, 0xc
jmp case.0x5d639d.0
push dword [esi + 4]
lea ecx, [ebp - 0xc]
push ecx
call fcn.005d6151
add esp, 8
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
neg eax
shl eax, 6
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
add dword [ebp - 0xc], 0x40
push pe_nt_image_headers32
push dword [ebp - 0x1c]
push dword [ebp - 0xc]
call fcn.005dd284
add esp, 0xc
cmp dword [esi + 8], 0
je case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x19], 1
je case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dced1
pop ecx
test eax, eax
jne 0x5da7e9
jmp case.0x5d639d.0
mov edi, dword [esi + 4]
neg edi
shl edi, 6
add edi, dword [ebp - 0xc]
push esi
push edi
mov esi, edi
lea edi, [ebp - 0x3d0]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0xc]
test byte [eax + 0x19], 1
je 0x5d69c4
push dword [ebp - 0xc]
call fcn.005dced1
pop ecx
test eax, eax
jne 0x5da7e9
xor edx, edx
mov dword [ebp - 0x20], edx
jmp 0x5d6a03
test byte [edi + 0x59], 1
je 0x5d69e3
lea ecx, [edi + 0x40]
push ecx
call fcn.005dced1
pop ecx
test eax, eax
jne 0x5da7e9
push esi
push edi
lea esi, [edi + 0x40]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
test byte [edi + 0x19], 2
je 0x5d69fd
lea eax, [edi + 0x20]
mov dword [edi + 0x10], eax
inc dword [ebp - 0x20]
add edi, 0x40
mov edx, dword [ebp - 0x20]
cmp edx, dword [esi + 4]
jl 0x5d69cb
mov ecx, dword [ebp - 0xc]
mov edi, ecx
lea esi, [ebp - 0x3d0]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xc]
test byte [eax + 0x19], 2
je case.0x5d639d.0
mov edx, dword [ebp - 0xc]
add edx, 0x20
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x10], edx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
neg eax
shl eax, 6
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
push dword [ebp - 0xc]
push dword [ebp - 0x24]
call fcn.005dd2ee
add esp, 8
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
xor ebx, ebx
jmp 0x5d6a7d
xor edi, edi
sub edi, ebx
shl edi, 6
add edi, dword [ebp - 0xc]
push edi
call fcn.005dcf45
pop ecx
push edi
call fcn.005d6119
pop ecx
inc ebx
cmp ebx, dword [esi + 4]
jl 0x5d6a64
mov eax, dword [ebp + 8]
mov byte [eax + 0x230], 1
mov edx, dword [ebp + 8]
inc dword [edx + 0x5c]
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 4]
mov dword [ecx + 0x228], eax
mov edx, dword [ebp - 4]
inc edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x78], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x2c], edx
mov eax, 0x64
jmp 0x5da88e
mov edx, dword [esi + 4]
add edx, 2
mov dword [ebp - 0x30], edx
mov edi, 1
sub edi, dword [ebp - 0x30]
shl edi, 6
add edi, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0x2c], eax
xor edx, edx
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x30]
jge 0x5d6b27
test byte [edi + 0x18], 1
je 0x5d6af3
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x5d6b27
test byte [edi + 0x18], 0x12
jne 0x5d6b13
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0x10]
push edx
push edi
call fcn.005dcfbb
add esp, 8
test eax, eax
jne 0x5da7e9
mov ecx, dword [edi + 0x14]
add dword [ebp - 0x2c], ecx
inc dword [ebp - 0x34]
add edi, 0x40
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x30]
jl 0x5d6ae4
cmp dword [ebp - 0x2c], 0
jge 0x5d6b54
cmp dword [esi + 8], 0
jne 0x5d6b42
push dword [ebp - 0x30]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp case.0x5d639d.0
mov eax, dword [ebp - 0x2c]
add eax, 2
push eax
call fcn.005d5178
pop ecx
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x5da7e9
mov edi, 1
sub edi, dword [ebp - 0x30]
shl edi, 6
add edi, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x30]
jge 0x5d6bbb
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x3c], ecx
push dword [ebp - 0x3c]
push dword [edi + 0x10]
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x38]
push eax
call fcn.005dfd64
add esp, 0xc
mov edx, dword [ebp - 0x3c]
add dword [ebp - 0x38], edx
inc dword [ebp - 0x34]
add edi, 0x40
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x30]
jl 0x5d6b8c
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
mov byte [eax + edx], 0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov byte [ecx + eax + 1], 0
cmp dword [esi + 8], 0
jne 0x5d6be5
push dword [ebp - 0x30]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x38]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0x62
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 8]
mov cl, byte [edx + 0x10]
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1b], cl
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [edx + 0x10], ecx
jmp case.0x5d639d.0
mov eax, dword [ebp - 0xc]
add eax, 0xffffffc0
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0xc]
mov cx, word [edx + 0x18]
mov eax, dword [ebp - 0x40]
or cx, word [eax + 0x18]
test cl, 1
je 0x5d6c6f
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d6c4b
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d6c61
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
mov cx, word [edx + 0x18]
mov eax, dword [ebp - 0x40]
and cx, word [eax + 0x18]
movzx edx, cx
and edx, 4
cmp edx, 4
jne 0x5d6d85
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x40]
mov ecx, dword [edx]
mov dword [ebp - 0x50], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x4c], ecx
mov al, byte [esi]
sub al, 0x56
je 0x5d6cbc
dec al
je 0x5d6cca
dec al
je 0x5d6cd8
dec al
je 0x5d6cf1
jmp 0x5d6d1a
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
add dword [ebp - 0x50], eax
adc dword [ebp - 0x4c], edx
jmp 0x5d6d41
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
sub dword [ebp - 0x50], eax
sbb dword [ebp - 0x4c], edx
jmp 0x5d6d41
push dword [ebp - 0x44]
push dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
call fcn.005dffbc
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jmp 0x5d6d41
cmp dword [ebp - 0x44], 0
jne 0x5d6d01
cmp dword [ebp - 0x48], 0
je 0x5d6e6f
push dword [ebp - 0x44]
push dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
call fcn.005dffdf
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jmp 0x5d6d41
cmp dword [ebp - 0x44], 0
jne 0x5d6d2a
cmp dword [ebp - 0x48], 0
je 0x5d6e6f
push dword [ebp - 0x44]
push dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
call fcn.005e00a0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d6d53
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d6d69
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x50]
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 4
jmp case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd174
pop ecx
fstp qword [ebp - 0x58]
push dword [ebp - 0x40]
call fcn.005dd174
pop ecx
fstp qword [ebp - 0x60]
mov cl, byte [esi]
sub cl, 0x56
je 0x5d6db2
dec cl
je 0x5d6dbd
dec cl
je 0x5d6dc8
dec cl
je 0x5d6dd3
jmp 0x5d6df0
fld qword [ebp - 0x58]
fadd qword [ebp - 0x60]
fstp qword [ebp - 0x60]
jmp 0x5d6e2a
fld qword [ebp - 0x58]
fsubr qword [ebp - 0x60]
fstp qword [ebp - 0x60]
jmp 0x5d6e2a
fld qword [ebp - 0x58]
fmul qword [ebp - 0x60]
fstp qword [ebp - 0x60]
jmp 0x5d6e2a
fld qword [ebp - 0x58]
fcomp dword [0x5da896]
fnstsw ax
sahf
je 0x5d6e6f
fld qword [ebp - 0x58]
fdivr qword [ebp - 0x60]
fstp qword [ebp - 0x60]
jmp 0x5d6e2a
fld qword [ebp - 0x58]
call fcn.005e02dc
mov dword [ebp - 0x64], eax
fld qword [ebp - 0x60]
call fcn.005e02dc
mov dword [ebp - 0x68], eax
fild dword [ebp - 0x64]
fcomp dword [0x5da896]
fnstsw ax
sahf
je 0x5d6e6f
mov eax, dword [ebp - 0x68]
cdq
idiv dword [ebp - 0x64]
mov dword [ebp - 0x4e4], edx
fild dword [ebp - 0x4e4]
fstp qword [ebp - 0x60]
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d6e3c
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d6e52
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x60]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 8
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d6e81
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d6e97
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
jmp case.0x5d639d.0
mov edx, dword [esi + 8]
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x70], eax
mov edi, 1
sub edi, dword [ebp - 0x74]
shl edi, 6
add edi, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x74]
jge 0x5d6ef2
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov dword [ecx + eax*4], edi
push edi
call fcn.005d6119
pop ecx
inc dword [ebp - 0x6c]
add edi, 0x40
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x74]
jl 0x5d6ed4
cmp dword [esi + 0x10], 0xfffffffb
jne 0x5d6f0b
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x428], ecx
xor eax, eax
mov dword [ebp - 0x424], eax
jmp 0x5d6f22
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x424], edx
mov ecx, dword [ebp - 0x424]
mov eax, dword [ecx]
mov dword [ebp - 0x428], eax
mov word [ebp - 0x408], 1
xor edx, edx
mov dword [ebp - 0x410], edx
xor ecx, ecx
mov dword [ebp - 0x404], ecx
mov byte [ebp - 0x3dc], 0
mov eax, dword [ebp - 0x428]
cmp byte [eax + 3], 0
je 0x5d6f57
mov edx, dword [esi - 8]
mov dword [ebp - 0x3d8], edx
push dword [ebp - 8]
call fcn.005d593a
pop ecx
test eax, eax
jne 0x5da809
push dword [ebp - 0x70]
push dword [ebp - 0x74]
lea ecx, [ebp - 0x428]
push ecx
mov eax, dword [ebp - 0x428]
call dword [eax + 0x10]
add esp, 0xc
push dword [ebp - 8]
call fcn.005d5905
pop ecx
test eax, eax
jne 0x5da809
cmp dword [0x7a91f4], 0
jne 0x5da7e9
push dword [ebp - 0x74]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
cmp dword [ebp - 0x424], 0
je 0x5d6fd8
push dword [esi + 4]
push dword [ebp - 0x424]
call fcn.005dc536
add esp, 8
mov ecx, dword [ebp - 0x424]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], 0xfffffff9
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0x10]
push edx
lea ecx, [ebp - 0x420]
push ecx
call fcn.005dce2b
add esp, 8
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 0
lea edx, [ebp - 0x420]
push edx
push dword [ebp - 0xc]
call fcn.005dd2ee
add esp, 8
cmp byte [ebp - 0x3dc], 0
je case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 2
jne 0x5d703f
push 0
push 0x7ac318
mov eax, dword [ebp + 8]
add eax, 0x22c
push eax
call fcn.005d5293
add esp, 0xc
jmp 0x5d7071
push 0
push dword [ebp - 0xc]
call fcn.005da932
pop ecx
push eax
mov edx, dword [ebp + 8]
add edx, 0x22c
push edx
call fcn.005d5293
add esp, 0xc
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x10]
push eax
push dword [ebp - 0xc]
call fcn.005dce2b
add esp, 8
mov ebx, 1
jmp case.0x5d639d.0
mov eax, dword [ebp - 0xc]
add eax, 0xffffffc0
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0xc]
mov cx, word [edx + 0x18]
mov eax, dword [ebp - 0x78]
or cx, word [eax + 0x18]
test cl, 1
je 0x5d70b7
push 2
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp case.0x5d639d.0
push dword [ebp - 0x78]
call fcn.005dd0df
pop ecx
mov dword [ebp - 0x7c], eax
push dword [ebp - 0xc]
call fcn.005dd0df
pop ecx
mov dword [ebp - 0x80], eax
mov dl, byte [esi]
sub dl, 0x52
je 0x5d70e4
dec dl
je 0x5d70ec
dec dl
je 0x5d70f4
dec dl
je 0x5d70fc
jmp 0x5d7102
mov ecx, dword [ebp - 0x80]
and dword [ebp - 0x7c], ecx
jmp 0x5d7102
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x7c], eax
jmp 0x5d7102
mov ecx, dword [ebp - 0x80]
shl dword [ebp - 0x7c], cl
jmp 0x5d7102
mov ecx, dword [ebp - 0x80]
sar dword [ebp - 0x7c], cl
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d7114
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d712a
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov eax, dword [ebp - 0x7c]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov eax, dword [esi + 4]
cdq
mov ecx, dword [ebp - 0xc]
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x5d639d.0
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
push edx
push 0x69
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0xc
jne 0x5d719d
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d718d
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 4
je 0x5d71c7
cmp dword [esi + 4], 0
setne al
and eax, 1
cdq
mov ecx, dword [ebp - 0xc]
add eax, dword [ecx]
adc edx, dword [ecx + 4]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
jmp 0x5d722c
push dword [ebp - 0xc]
call fcn.005dd1f4
pop ecx
mov eax, dword [ebp - 0xc]
fld qword [eax + 8]
call fcn.005e02dc
cdq
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
fild qword [ebp - 0x88]
mov ecx, dword [ebp - 0xc]
fcomp qword [ecx + 8]
fnstsw ax
sahf
jae 0x5d7207
add dword [ebp - 0x88], 1
adc dword [ebp - 0x84], 0
cmp dword [esi + 4], 0
je 0x5d722c
fild qword [ebp - 0x88]
mov edx, dword [ebp - 0xc]
fcomp qword [edx + 8]
fnstsw ax
sahf
jne 0x5d722c
add dword [ebp - 0x88], 1
adc dword [ebp - 0x84], 0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d723e
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x88]
mov dword [ecx], eax
mov eax, dword [ebp - 0x84]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 4
jmp case.0x5d639d.0
mov ecx, dword [ebp - 8]
mov al, byte [ecx + 0x10]
push eax
push 0x69
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 4
jne 0x5d72ad
cmp dword [esi + 8], 0
jne 0x5d728d
mov ebx, 0x14
jmp 0x5da80e
cmp dword [esi + 4], 0
je 0x5d72a1
push 1
lea eax, [ebp - 0xc]
push eax
call fcn.005d6151
add esp, 8
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d72bf
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
movzx eax, word [ecx + 0x18]
and eax, 0x10
sar eax, 3
mov edx, dword [ebp - 0xc]
or word [edx + 0x18], ax
mov ecx, dword [ebp - 8]
mov al, byte [ecx + 0x10]
push eax
push 0x69
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
movzx eax, word [ecx + 0x18]
and eax, 0x10
sar eax, 3
mov edx, dword [ebp - 0xc]
or word [edx + 0x18], ax
mov ecx, dword [ebp - 8]
mov al, byte [ecx + 0x10]
push eax
push 0x6e
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0xc
jne 0x5d7359
push dword [ebp - 0xc]
call fcn.005dd1f4
pop ecx
jmp 0x5d7362
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
mov ecx, dword [ebp - 0xc]
and word [ecx + 0x18], 0xc
jmp case.0x5d639d.0
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 1
jne case.0x5d639d.0
mov edx, dword [ebp - 0xc]
movzx ecx, word [edx + 0x18]
and ecx, 0x10
sar ecx, 3
mov eax, dword [ebp - 0xc]
or word [eax + 0x18], cx
mov edx, dword [ebp - 8]
mov cl, byte [edx + 0x10]
push ecx
push 0x74
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
mov eax, dword [ebp - 0xc]
and word [eax + 0x18], 0xffe3
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x10
jne 0x5d73e4
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
push edx
push 0x74
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
mov ecx, dword [ebp - 0xc]
or word [ecx + 0x18], 0x10
mov eax, dword [ebp - 0xc]
and word [eax + 0x18], 0xfff1
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
add edx, 0xffffffc0
mov dword [ebp - 0x8c], edx
mov ecx, dword [ebp - 0xc]
mov ax, word [ecx + 0x18]
mov edx, dword [ebp - 0x8c]
or ax, word [edx + 0x18]
movzx ecx, ax
mov dword [ebp - 0x90], ecx
test byte [ebp - 0x90], 1
je 0x5d74a5
test byte [esi + 5], 2
je 0x5d7469
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 1
sete al
and eax, 1
cdq
push edx
push eax
push dword [ebp - 0xc]
call fcn.005dd237
add esp, 0xc
mov ecx, dword [ebp - 0x8c]
test byte [ecx + 0x18], 1
sete al
and eax, 1
cdq
push edx
push eax
push dword [ebp - 0x8c]
call fcn.005dd237
add esp, 0xc
jmp 0x5d74a5
push 2
lea ecx, [ebp - 0xc]
push ecx
call fcn.005d6151
add esp, 8
cmp dword [esi + 8], 0
je 0x5d7493
test byte [esi + 5], 1
je case.0x5d639d.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 1
jmp case.0x5d639d.0
mov cl, byte [esi + 4]
and cl, 0xff
mov byte [ebp - 0x95], cl
cmp byte [ebp - 0x95], 0
je 0x5d74ef
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
push edx
mov cl, byte [ebp - 0x95]
push ecx
push dword [ebp - 0x8c]
call fcn.005d61b7
add esp, 0xc
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
push edx
mov cl, byte [ebp - 0x95]
push ecx
push dword [ebp - 0xc]
call fcn.005d61b7
add esp, 0xc
push dword [esi + 0xc]
push dword [ebp - 0xc]
push dword [ebp - 0x8c]
call fcn.005dd429
add esp, 0xc
mov dword [ebp - 0x94], eax
xor eax, eax
mov al, byte [esi]
add eax, 0xffffffb5
cmp eax, 4
ja case.default.0x5d7519
jmp dword [eax*4 + 0x5d7520]
cmp dword [ebp - 0x94], 0
sete dl
and edx, 1
mov dword [ebp - 0x94], edx
jmp 0x5d75b0
cmp dword [ebp - 0x94], 0
setne cl
and ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x5d75b0
cmp dword [ebp - 0x94], 0
setl al
and eax, 1
mov dword [ebp - 0x94], eax
jmp 0x5d75b0
cmp dword [ebp - 0x94], 0
setle dl
and edx, 1
mov dword [ebp - 0x94], edx
jmp 0x5d75b0
cmp dword [ebp - 0x94], 0
setg cl
and ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x5d75b0
cmp dword [ebp - 0x94], 0
setge al
and eax, 1
mov dword [ebp - 0x94], eax
push 2
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
cmp dword [esi + 8], 0
je 0x5d75dd
cmp dword [ebp - 0x94], 0
je case.0x5d639d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
mov eax, dword [ebp - 0x94]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5d639d.0
mov eax, dword [ebp - 0xc]
add eax, 0xffffffc0
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
je 0x5d761f
mov dword [ebp - 0xa0], 2
jmp 0x5d7640
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
jne 0x5d7634
cmp dword [ecx], 0
sete al
and eax, 1
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x9c]
test byte [edx + 0x18], 1
je 0x5d7658
mov dword [ebp - 0xa4], 2
jmp 0x5d767f
push dword [ebp - 0x9c]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0x9c]
cmp dword [ecx + 4], 0
jne 0x5d7673
cmp dword [ecx], 0
sete al
and eax, 1
mov dword [ebp - 0xa4], eax
cmp byte [esi], 0x44
jne 0x5d76a6
mov edx, dword [ebp - 0xa0]
lea edx, [edx + edx*2]
lea ecx, [edx + 0x7a9334]
mov eax, dword [ebp - 0xa4]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0xa0], edx
jmp 0x5d76c6
mov ecx, dword [ebp - 0xa0]
lea ecx, [ecx + ecx*2]
lea eax, [ecx + 0x7a933d]
mov edx, dword [ebp - 0xa4]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [ebp - 0xa0], ecx
push 2
lea eax, [ebp - 0xc]
push eax
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
cmp dword [ebp - 0xa0], 2
jne 0x5d76ef
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 1
jmp case.0x5d639d.0
cmp dword [ebp - 0xa0], 0
sete al
and eax, 1
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 8
je 0x5d7760
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d772e
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
cmp byte [esi], 0x5c
je 0x5d7744
mov eax, dword [ebp - 0xc]
fld qword [eax + 8]
fcomp dword [0x5da896]
fnstsw ax
sahf
jae 0x5d7752
mov edx, dword [ebp - 0xc]
fld qword [edx + 8]
fchs
mov ecx, dword [ebp - 0xc]
fstp qword [ecx + 8]
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 8
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 4
je 0x5d77b7
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x18], 0x40
je 0x5d777b
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
cmp byte [esi], 0x5c
je 0x5d7792
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jne 0x5d7790
cmp dword [eax], 0
jae 0x5d77a9
jmp 0x5d7792
jge 0x5d77a9
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov edx, dword [edx + 4]
neg eax
adc edx, 0
neg edx
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd1f4
pop ecx
cmp byte [esi], 0x5c
je 0x5d77e3
mov ecx, dword [ebp - 0xc]
fld qword [ecx + 8]
fcomp dword [0x5da896]
fnstsw ax
sahf
jae 0x5d77f1
mov edx, dword [ebp - 0xc]
fld qword [edx + 8]
fchs
mov ecx, dword [ebp - 0xc]
fstp qword [ecx + 8]
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 8
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
jne 0x5d7821
cmp dword [ecx], 0
setne al
and eax, 1
cmp eax, 1
sbb eax, eax
neg eax
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
jne case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
not eax
not edx
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
je 0x5d7891
mov eax, dword [esi + 4]
mov dword [ebp - 0xa8], eax
jmp 0x5d78c7
push dword [ebp - 0xc]
call fcn.005dd174
pop ecx
fcomp dword [0x5da896]
fnstsw ax
sahf
setne dl
and edx, 1
mov dword [ebp - 0xa8], edx
cmp byte [esi], 0x3d
jne 0x5d78c7
mov ecx, dword [ebp - 0xa8]
cmp ecx, 1
sbb eax, eax
neg eax
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d78d9
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
cmp dword [ebp - 0xa8], 0
je case.0x5d639d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
jge 0x5d790e
neg dword [ebp - 0xb0]
mov edx, 1
sub edx, dword [ebp - 0xb0]
shl edx, 6
add edx, dword [ebp - 0xc]
mov dword [ebp - 0xb4], edx
xor ecx, ecx
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xb0]
jge 0x5d796b
mov edx, dword [ebp - 0xb4]
test byte [edx + 0x18], 1
je 0x5d7950
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp 0x5d796b
inc dword [ebp - 0xac]
add dword [ebp - 0xb4], 0x40
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xb0]
jl 0x5d793b
cmp dword [esi + 4], 0
jle case.0x5d639d.0
push dword [ebp - 0xb0]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
test edx, edx
jge 0x5d7995
neg edx
xor eax, eax
jmp 0x5d799a
inc eax
cmp edx, eax
jle 0x5d79b0
lea ecx, [eax + 1]
sub ecx, edx
shl ecx, 6
mov edi, dword [ebp - 0xc]
test byte [edi + ecx + 0x18], 1
je 0x5d7999
cmp edx, eax
jg 0x5d79bb
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
cmp dword [esi + 4], 0
jle case.0x5d639d.0
push edx
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
jmp case.0x5d639d.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0xb8]
mov edx, dword [esi + 8]
mov dword [eax + 0x50], edx
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + 8]
mov dword [ebp - 0xc4], eax
xor edi, edi
mov word [ebp - 0x450], 0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
cmp dword [ebp - 0xc0], 0
jge 0x5d7a87
mov edx, dword [ebp - 0xc0]
shl edx, 6
add edx, dword [ebp - 0xc]
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
add ecx, 0xffffffc0
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx]
mov dword [ebp - 0xd8], eax
xor edx, edx
mov dword [ebp - 0xcc], edx
jmp 0x5d7b82
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0xc0]
mov edi, dword [eax + edx*4]
cmp dword [edi], 0
je 0x5d7b33
push edi
call fcn.005dc63a
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x5da80e
xor eax, eax
mov dword [ebp - 0xc8], eax
mov edx, dword [edi]
mov dword [ebp - 0xcc], edx
cmp byte [edi + 0x1c], 0
je 0x5d7ad0
xor ecx, ecx
mov dword [ebp - 0xbc], ecx
jmp 0x5d7b28
cmp byte [edi + 0x60], 0
je 0x5d7aea
mov eax, dword [edi + 0x64]
mov dword [ebp - 0xbc], eax
mov edx, dword [edi + 0x70]
mov dword [ebp - 0xc8], edx
jmp 0x5d7b28
cmp byte [edi + 0x21], 0
je 0x5d7b13
lea ecx, [ebp - 0xfc]
push ecx
push dword [ebp - 0xcc]
call fcn.005b7af8
add esp, 8
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xbc], eax
jmp 0x5d7b28
lea edx, [ebp - 0xbc]
push edx
push dword [ebp - 0xcc]
call fcn.005b7b30
add esp, 8
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0xd8], ecx
jmp 0x5d7b82
cmp byte [edi + 0x1e], 0
je 0x5d7b62
mov eax, dword [edi + 0x34]
mov dword [ebp - 0xbc], eax
mov edx, dword [edi + 0x38]
mov dword [ebp - 0xc8], edx
mov byte [edi + 0x60], 0
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0xd8], ecx
xor eax, eax
mov dword [ebp - 0xcc], eax
jmp 0x5d7b82
xor edx, edx
mov dword [ebp - 0xc8], edx
xor ecx, ecx
mov dword [ebp - 0xbc], ecx
xor eax, eax
mov dword [ebp - 0xcc], eax
xor edx, edx
mov dword [ebp - 0xd8], edx
cmp dword [ebp - 0xbc], 0
jne 0x5d7b99
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp case.0x5d639d.0
test edi, edi
je 0x5d7bba
cmp byte [edi + 0x60], 0
je 0x5d7bba
mov eax, dword [edi + 0x68]
mov dword [ebp - 0xd0], eax
mov edx, dword [edi + 0x6c]
mov dword [ebp - 0xd4], edx
jmp 0x5d7deb
test edi, edi
je 0x5d7bcf
cmp dword [edi + 0x68], 0
je 0x5d7bcf
mov ecx, dword [edi + 0x68]
mov dword [ebp - 0xd0], ecx
jmp 0x5d7be7
mov eax, dword [ebp - 0xd8]
add eax, eax
shl eax, 2
push eax
call fcn.005d5178
pop ecx
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xd8]
shl edx, 2
add edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xd0], 0
je 0x5da7e9
cmp dword [ebp - 0xc8], 0
je 0x5d7c20
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xec], ecx
jmp 0x5d7c82
cmp byte [edi + 0x21], 0
je 0x5d7c43
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0xcc]
call fcn.005b7d48
add esp, 8
mov dword [ebp - 0xec], eax
jmp 0x5d7c5e
lea edx, [ebp - 0x100]
push edx
push dword [ebp - 0xcc]
call fcn.005b7d5d
add esp, 8
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x100]
cmp ecx, dword [ebp - 0xbc]
jb 0x5d7c7d
mov eax, dword [ebp - 0xec]
mov dword [edi + 0x70], eax
mov dword [ebp - 0xc8], eax
jmp 0x5d7c82
xor edx, edx
mov dword [edi + 0x70], edx
lea ecx, [ebp - 0xdc]
push ecx
push dword [ebp - 0xec]
call fcn.005d5b9c
add esp, 8
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xc8], 0
jne 0x5d7ced
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0xdc]
jae 0x5d7ced
lea edx, [ebp - 0x468]
push edx
xor ecx, ecx
mov cl, byte [edi + 0x21]
push ecx
push dword [ebp - 0xdc]
push 0
push dword [ebp - 0xcc]
call fcn.005dd633
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x5d7eff
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], edx
xor ebx, ebx
jmp 0x5d7d49
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov dword [eax + ebx*4], edx
mov ecx, ebx
shl ecx, 2
add ecx, dword [ebp - 0xd0]
push ecx
mov eax, dword [ebp - 0xec]
add eax, dword [ebp - 0xe8]
push eax
call fcn.005d5b9c
add esp, 8
add dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xd0]
push dword [edx + ebx*4]
call fcn.005dc7c3
pop ecx
add dword [ebp - 0xe4], eax
inc ebx
mov ecx, dword [ebp - 0xe8]
cmp ecx, dword [ebp - 0xdc]
jae 0x5d7d6d
cmp ebx, dword [ebp - 0xd8]
jae 0x5d7d6d
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ebp - 0xbc]
jbe 0x5d7cfd
test byte [ebp - 0x450], 0x40
je 0x5d7d83
lea edx, [ebp - 0x468]
push edx
call fcn.005dd091
pop ecx
mov word [ebp - 0x450], 1
jmp 0x5d7d9a
mov ecx, dword [ebp - 0xd4]
xor eax, eax
mov dword [ecx + ebx*4], eax
inc ebx
cmp ebx, dword [ebp - 0xd8]
jb 0x5d7d8e
mov edx, dword [ebp - 0xe8]
cmp edx, dword [ebp - 0xdc]
jne 0x5d7dbe
mov ecx, dword [ebp - 0xe4]
cmp ecx, dword [ebp - 0xbc]
je 0x5d7dc8
mov ebx, 0xb
jmp 0x5d7eff
test edi, edi
je 0x5d7deb
mov eax, dword [ebp - 0xbc]
mov dword [edi + 0x64], eax
mov edx, dword [ebp - 0xd0]
mov dword [edi + 0x68], edx
mov ecx, dword [ebp - 0xd4]
mov dword [edi + 0x6c], ecx
mov byte [edi + 0x60], 1
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc4]
cmp dword [eax + edx*4], 0
je 0x5d7eb6
cmp dword [ebp - 0xc8], 0
je 0x5d7e27
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xc4]
mov edx, dword [ecx + eax*4]
add edx, dword [ebp - 0xc8]
mov dword [ebp - 0xec], edx
jmp 0x5d7e88
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc4]
push dword [ecx + eax*4]
call fcn.005dc7c3
pop ecx
mov dword [ebp - 0xe0], eax
lea edx, [ebp - 0x468]
push edx
xor ecx, ecx
mov cl, byte [edi + 0x21]
push ecx
push dword [ebp - 0xe0]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc4]
push dword [eax + edx*4]
push dword [ebp - 0xcc]
call fcn.005dd633
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x5d7eff
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0xec], eax
push dword [ebp - 0xc]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xc4]
push dword [edx + ecx*4]
push dword [ebp - 0xec]
call fcn.005dc875
add esp, 0xc
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x1b], dl
jmp 0x5d7eda
cmp dword [esi + 0x10], 0xfffffff8
jne 0x5d7ed1
push 0x80
push dword [esi + 0xc]
push dword [ebp - 0xc]
call fcn.005dd284
add esp, 0xc
jmp 0x5d7eda
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
test byte [ebp - 0x450], 0x40
je 0x5d7ef4
mov edx, dword [ebp - 0xc]
and word [edx + 0x18], 0xfeff
mov ecx, dword [ebp - 0xc]
or word [ecx + 0x18], 0x60
push dword [ebp - 0xc]
call fcn.005dced1
pop ecx
mov ebx, eax
test edi, edi
je 0x5d7f0d
cmp dword [edi + 0x68], 0
jne case.0x5d639d.0
push dword [ebp - 0xd0]
call fcn.005d51a5
pop ecx
jmp case.0x5d639d.0
xor eax, eax
mov dword [ebp - 0x10c], eax
xor edx, edx
mov dword [ebp - 0x110], edx
xor ecx, ecx
mov dword [ebp - 0x114], ecx
xor eax, eax
mov dword [ebp - 0x118], eax
xor edx, edx
mov dword [ebp - 0x120], edx
cmp dword [esi + 4], 0
jge 0x5d7f53
mov ecx, 1
jmp 0x5d7f55
xor ecx, ecx
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x128], 0
je 0x5d7f69
or eax, 0xffffffff
jmp 0x5d7f6e
mov eax, 1
imul dword [esi + 4]
mov dword [ebp - 0x12c], eax
mov edx, dword [esi + 8]
mov dword [ebp - 0x130], edx
cmp byte [esi], 0x32
sete cl
and ecx, 1
mov dword [ebp - 0x134], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x138], eax
mov edx, 1
sub edx, dword [ebp - 0x12c]
shl edx, 6
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x124], edx
xor ecx, ecx
mov dword [ebp - 0x120], ecx
mov esi, dword [ebp - 0x124]
cmp esi, dword [ebp - 0xc]
ja 0x5d8039
cmp dword [ebp - 0x138], 0
je 0x5d7ff7
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x10]
push edx
mov ecx, esi
sub ecx, dword [ebp - 0x124]
test ecx, ecx
jns 0x5d7fe1
add ecx, 0x3f
sar ecx, 6
mov eax, dword [ebp - 0x138]
mov dl, byte [eax + ecx]
push edx
push esi
call fcn.005d61b7
add esp, 0xc
test byte [esi + 0x18], 1
je 0x5d8007
mov dword [ebp - 0x120], 1
push esi
call fcn.005dc6cb
pop ecx
mov edi, eax
push edi
call fcn.005dc7c3
pop ecx
add dword [ebp - 0x110], eax
mov eax, edi
xor edx, edx
push edx
push eax
call fcn.005d5c16
add esp, 8
add dword [ebp - 0x114], eax
add esi, 0x40
cmp esi, dword [ebp - 0xc]
jbe 0x5d7fc2
cmp dword [ebp - 0x134], 0
je 0x5d8091
xor ecx, ecx
sub ecx, dword [ebp - 0x12c]
shl ecx, 6
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10c], ecx
push dword [ebp - 0x10c]
call fcn.005dd14f
pop ecx
push dword [ebp - 0x10c]
call fcn.005dc6cb
pop ecx
mov edi, eax
push edi
call fcn.005dc7c3
pop ecx
add dword [ebp - 0x110], eax
mov eax, edi
xor edx, edx
push edx
push eax
call fcn.005d5c16
add esp, 8
add dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
cdq
push edx
push eax
call fcn.005d5c16
add esp, 8
mov dword [ebp - 0x11c], eax
add dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
cdq
push edx
push eax
call fcn.005d5c16
add esp, 8
cmp eax, dword [ebp - 0x11c]
jle 0x5d80cd
inc dword [ebp - 0x114]
mov ecx, dword [ebp - 0x114]
add ecx, dword [ebp - 0x110]
mov dword [ebp - 0x118], ecx
cmp dword [ebp - 0x118], 0x20
jle 0x5d8109
push dword [ebp - 0x118]
call fcn.005d5178
pop ecx
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x5da7e9
jmp 0x5d8115
lea eax, [ebp - 0x488]
mov dword [ebp - 0x104], eax
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x114]
cdq
push edx
push eax
push dword [ebp - 0x108]
call fcn.005d59a3
add esp, 0xc
add dword [ebp - 0x108], eax
mov esi, dword [ebp - 0x124]
cmp esi, dword [ebp - 0xc]
ja 0x5d8174
push esi
call fcn.005dc6cb
pop ecx
mov edi, eax
mov eax, edi
xor edx, edx
push edx
push eax
push dword [ebp - 0x108]
call fcn.005d59a3
add esp, 0xc
add dword [ebp - 0x108], eax
add esi, 0x40
cmp esi, dword [ebp - 0xc]
jbe 0x5d8149
cmp dword [ebp - 0x134], 0
je 0x5d81a1
push dword [ebp - 0x10c]
call fcn.005dc6cb
pop ecx
xor edx, edx
push edx
push eax
push dword [ebp - 0x108]
call fcn.005d59a3
add esp, 0xc
add dword [ebp - 0x108], eax
mov esi, dword [ebp - 0x124]
cmp esi, dword [ebp - 0xc]
ja 0x5d81c9
push esi
push dword [ebp - 0x108]
call fcn.005dc7de
add esp, 8
add dword [ebp - 0x108], eax
add esi, 0x40
cmp esi, dword [ebp - 0xc]
jbe 0x5d81ac
cmp dword [ebp - 0x134], 0
je 0x5d81e6
push dword [ebp - 0x10c]
push dword [ebp - 0x108]
call fcn.005dc7de
add esp, 8
cmp dword [ebp - 0x128], 0
jne 0x5d8208
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x134]
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x118]
mov dword [ecx + 0x14], eax
cmp dword [ebp - 0x118], 0x20
jg 0x5d8254
mov edx, dword [ebp - 0xc]
add edx, 0x20
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x10], edx
push dword [ebp - 0x118]
lea eax, [ebp - 0x488]
push eax
mov edx, dword [ebp - 0xc]
add edx, 0x20
push edx
call fcn.005dfd64
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 0x210
jmp 0x5d8271
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x104]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 0x50
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 0x1c], edx
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x1b], 1
cmp dword [ebp - 0x130], 0
je case.0x5d639d.0
cmp dword [ebp - 0x120], 0
je case.0x5d639d.0
mov eax, dword [ebp - 0x130]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x13c], edx
cmp dword [ebp - 0x13c], 0
jl case.0x5d639d.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x13c]
jle case.0x5d639d.0
imul edx, dword [ebp - 0x13c], 0xe
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8 + 4]
mov dword [ebp - 0x140], edx
test edx, edx
je case.0x5d639d.0
mov eax, dword [ebp - 8]
cmp byte [eax + 0x11], 0
jne case.0x5d639d.0
push dword [ebp - 0x140]
call fcn.005bb6c1
pop ecx
test eax, eax
jne case.0x5d639d.0
push dword [ebp - 0x140]
call fcn.005b784f
pop ecx
mov ebx, eax
jmp case.0x5d639d.0
mov al, byte [esi + 4]
mov byte [ebp - 0x141], al
mov dl, byte [esi + 8]
mov byte [ebp - 0x142], dl
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x4c], 1
jle 0x5d8385
cmp byte [ebp - 0x141], 0
je 0x5d8385
mov eax, dword [ebp - 8]
cmp byte [eax + 0x11], 0
jne 0x5d8385
push 0
push 0x7ac344
cmp byte [ebp - 0x142], 0
je 0x5d835f
mov edx, 0x7ac334
jmp 0x5d8364
mov edx, 0x7ac33d
push edx
push 0x7ac32c
mov eax, dword [ebp + 8]
add eax, 0x22c
push eax
call fcn.005d5293
add esp, 0x14
mov ebx, 1
jmp case.0x5d639d.0
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x11]
cmp dl, byte [ebp - 0x141]
je 0x5d83fc
mov ecx, dword [ebp - 8]
mov al, byte [ebp - 0x141]
mov byte [ecx + 0x11], al
cmp dword [esi + 8], 0
je 0x5d83b0
push dword [ebp - 8]
call fcn.005c8026
pop ecx
jmp 0x5d83f2
push dword [ebp + 8]
call fcn.005dc2b3
pop ecx
cmp eax, 5
jne 0x5d83f2
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x2c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x78], edx
mov cl, 1
sub cl, byte [ebp - 0x141]
mov eax, dword [ebp - 8]
mov byte [eax + 0x11], cl
mov edx, dword [ebp + 8]
mov dword [edx + 0x7c], 5
mov eax, 5
jmp 0x5da88e
mov eax, 0x65
jmp 0x5da88e
push 0
cmp byte [ebp - 0x141], 0
jne 0x5d840e
mov edx, 0x7ac36e
jmp 0x5d8423
cmp byte [ebp - 0x142], 0
je 0x5d841e
mov edx, 0x7ac39e
jmp 0x5d8423
mov edx, 0x7ac3c9
push edx
mov eax, dword [ebp + 8]
add eax, 0x22c
push eax
call fcn.005d5293
add esp, 0xc
mov ebx, 1
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x148], eax
imul edx, dword [ebp - 0x148], 0xe
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8 + 4]
mov dword [ebp - 0x14c], edx
cmp dword [ebp - 0x14c], 0
je case.0x5d639d.0
push dword [esi + 8]
push dword [ebp - 0x14c]
call fcn.005b715f
add esp, 8
mov ebx, eax
cmp ebx, 5
jne 0x5d84aa
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x78], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x7c], 5
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x2c], edx
mov eax, 5
jmp 0x5da88e
test ebx, ebx
je case.0x5d639d.0
cmp ebx, 8
jne 0x5da80e
jmp case.0x5d639d.0
lea edx, [ebp - 0x150]
push edx
mov ecx, dword [esi + 8]
inc ecx
push ecx
imul eax, dword [esi + 4], 0xe
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
push dword [ecx + eax*8 + 4]
call fcn.005baadf
add esp, 0xc
mov ebx, eax
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0x150]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
imul eax, dword [esi + 4], 0x70
add ecx, eax
mov dword [ebp - 0x154], ecx
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
push eax
mov edx, dword [esi + 8]
inc edx
push edx
mov ecx, dword [ebp - 0x154]
push dword [ecx + 4]
call fcn.005bab20
add esp, 0xc
mov ebx, eax
cmp dword [esi + 8], 0
jne 0x5d8559
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [ebp - 0x154]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 8]
or dword [ecx + 8], 0x10
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
imul eax, dword [esi + 4], 0xe
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
je 0x5d859a
lea edx, [ebp - 0x158]
push edx
push 1
push dword [ebp - 0x15c]
call fcn.005baadf
add esp, 0xc
mov ebx, eax
jmp 0x5d85a4
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x158], eax
test ebx, ebx
jne case.0x5d639d.0
mov edx, dword [ebp - 0x158]
cmp edx, dword [esi + 8]
je case.0x5d639d.0
push 0
push 0x7ac3f2
mov ecx, dword [ebp + 8]
add ecx, 0x22c
push ecx
call fcn.005d5293
add esp, 0xc
mov ebx, 0x11
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x160], eax
mov edx, dword [esi + 8]
mov dword [ebp - 0x164], edx
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov dword [ebp - 0x170], eax
sub dword [ebp - 0xc], 0x40
imul edx, dword [ebp - 0x170], 0xe
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8 + 4]
mov dword [ebp - 0x16c], edx
cmp byte [esi], 8
sete cl
and ecx, 1
mov dword [ebp - 0x168], ecx
cmp dword [ebp - 0x164], 0
jg 0x5d864f
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x164], eax
sub dword [ebp - 0xc], 0x40
push dword [ebp - 0x160]
push dword [ebp + 8]
call fcn.005d617f
add esp, 8
mov edi, eax
test edi, edi
je 0x5da7e9
mov byte [edi + 0x1c], 1
cmp dword [ebp - 0x16c], 0
je case.0x5d639d.0
push edi
push dword [esi + 0xc]
push fcn.005dcaab
push dword [ebp - 0x168]
push dword [ebp - 0x164]
push dword [ebp - 0x16c]
call fcn.005b790d
add esp, 0x18
mov ebx, eax
cmp dword [esi + 0x10], 0xfffffffa
jne 0x5d86c2
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov edx, dword [edi + 0x4c]
inc edx
mov dword [edi + 0x48], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dl, byte [eax + 0x10]
mov ecx, dword [edi + 0x4c]
mov byte [ecx], dl
jmp 0x5d86cd
xor eax, eax
mov dword [edi + 0x4c], eax
lea edx, [edi + 0x22]
mov dword [edi + 0x48], edx
mov ecx, ebx
sub ecx, 1
jb 0x5d871b
sub ecx, 4
je 0x5d86e7
sub ecx, 0xb
je 0x5d87a2
jmp 0x5da80e
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x78], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x7c], 5
cmp dword [esi + 8], 0
setle al
and eax, 1
inc eax
shl eax, 6
add eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x2c], eax
mov eax, 5
jmp 0x5da88e
push dword [edi]
call fcn.005bab6f
pop ecx
mov dword [ebp - 0x174], eax
test byte [ebp - 0x174], 0xf0
jne 0x5d874e
mov edx, dword [ebp - 0x174]
and edx, 7
cmp edx, 5
je 0x5d8758
mov ecx, dword [ebp - 0x174]
and ecx, 7
cmp ecx, 2
je 0x5d8758
mov ebx, 0xb
jmp 0x5da80e
test byte [ebp - 0x174], 1
setne al
and eax, 1
mov byte [edi + 0x20], al
test byte [ebp - 0x174], 2
setne dl
and edx, 1
mov byte [edi + 0x21], dl
cmp byte [edi + 0x20], 0
je 0x5d8784
cmp dword [esi + 0x10], 0xfffffffa
je 0x5d8798
cmp byte [edi + 0x21], 0
je case.0x5d639d.0
cmp dword [esi + 0x10], 0xfffffffa
je case.0x5d639d.0
mov ebx, 0xb
jmp 0x5da80e
cmp dword [esi + 0x10], 0xfffffffa
setne al
and eax, 1
mov byte [edi + 0x20], al
xor edx, edx
mov dl, byte [edi + 0x20]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov byte [edi + 0x21], cl
xor ebx, ebx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x178], eax
push dword [ebp - 0x178]
push dword [ebp + 8]
call fcn.005d617f
add esp, 8
mov edi, eax
test edi, edi
je 0x5da7e9
mov byte [edi + 0x1c], 1
lea eax, [edi + 0x30]
push eax
push 0x1f4
push 1
push 0
push dword [ebp - 8]
call fcn.005c85de
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x5d881a
push 1
push dword [edi + 0x30]
call fcn.005b715f
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x5d889c
cmp dword [esi + 0xc], 0
je 0x5d887c
push 2
lea eax, [ebp - 0x17c]
push eax
push dword [edi + 0x30]
call fcn.005ba4e0
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x5d8876
push edi
push dword [esi + 0xc]
push fcn.005dcaab
push 1
push dword [ebp - 0x17c]
push dword [edi + 0x30]
call fcn.005b790d
add esp, 0x18
mov ebx, eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov al, byte [ecx + 0x10]
mov edx, dword [edi + 0x4c]
mov byte [edx], al
mov ecx, dword [edi + 0x4c]
inc ecx
mov dword [edi + 0x48], ecx
mov byte [edi + 0x20], 0
jmp 0x5d889c
push edi
push 0
push 0
push 1
push 1
push dword [edi + 0x30]
call fcn.005b790d
add esp, 0x18
mov ebx, eax
mov byte [edi + 0x20], 1
lea eax, [edi + 0x22]
mov dword [edi + 0x48], eax
mov edx, dword [esi + 8]
mov dword [edi + 0x50], edx
xor ecx, ecx
mov cl, byte [edi + 0x20]
cmp ecx, 1
sbb eax, eax
neg eax
mov byte [edi + 0x21], al
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x180], edx
push dword [ebp - 0x180]
push dword [ebp + 8]
call fcn.005d617f
add esp, 8
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
je 0x5da7e9
mov ecx, dword [ebp - 0x184]
mov byte [ecx + 0x1c], 1
mov eax, dword [ebp - 0x184]
mov byte [eax + 0x1e], 1
mov edx, dword [ebp - 0x184]
add edx, 0x22
mov ecx, dword [ebp - 0x184]
mov dword [ecx + 0x48], edx
mov eax, dword [ebp - 0x184]
mov byte [eax + 0x20], 1
mov edx, dword [ebp - 0x184]
mov byte [edx + 0x21], 0
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x188], ecx
cmp dword [ebp - 0x188], 0
jl case.0x5d639d.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp - 0x188]
jle case.0x5d639d.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x188]
push dword [eax + edx*4]
call fcn.005dbd78
pop ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x188]
xor ecx, ecx
mov dword [eax + edx*4], ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x18c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x18c]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je 0x5d8b5f
xor eax, eax
mov al, byte [esi]
mov dword [ebp - 0x194], eax
mov byte [edi + 0x1c], 0
cmp dword [ebp - 0x194], 6
je 0x5d89ba
cmp dword [ebp - 0x194], 0x3c
je 0x5d89ba
xor edx, edx
jmp 0x5d89bf
mov edx, 1
mov ecx, dword [edi + 0x48]
mov byte [ecx], dl
cmp byte [edi + 0x20], 0
je 0x5d8a5e
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
mov dword [ebp - 0x19c], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x198], edx
cmp dword [esi + 8], 0
jne 0x5d8a15
cmp byte [esi], 0x78
jne 0x5d8a15
mov ecx, dword [ebp - 0x19c]
mov dword [edi + 0x28], ecx
mov ecx, dword [ebp - 0x198]
mov dword [edi + 0x2c], ecx
mov byte [edi + 0x1f], 1
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
lea eax, [ebp - 0x190]
push eax
push dword [ebp - 0x198]
push dword [ebp - 0x19c]
push 0
push dword [edi]
call fcn.005b7fd9
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
mov dword [edi + 8], edx
mov edx, dword [eax + 4]
mov dword [edi + 0xc], edx
cmp dword [ebp - 0x190], 0
sete cl
and ecx, 1
mov byte [edi + 0x19], cl
jmp 0x5d8ab1
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x12
jne 0x5d8a83
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx + 0x10]
push ecx
push dword [ebp - 0xc]
call fcn.005dcfbb
add esp, 8
test eax, eax
jne 0x5da7e9
lea eax, [ebp - 0x190]
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x14]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
push dword [edi]
call fcn.005b7fd9
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov byte [edi + 0x19], 0
mov byte [edi + 0x1f], 0
mov byte [edi + 0x60], 0
mov eax, dword [edi + 0x48]
mov byte [eax], 0
inc dword [0x7a9328]
cmp dword [ebp - 0x194], 0x78
je 0x5d8ad7
cmp dword [ebp - 0x194], 6
jne 0x5d8b0b
cmp dword [ebp - 0x190], 0
jge 0x5d8b01
lea edx, [ebp - 0x190]
push edx
push dword [edi]
call fcn.005b8246
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov byte [edi + 0x19], 0
jmp 0x5d8b43
xor eax, eax
mov dword [ebp - 0x190], eax
jmp 0x5d8b43
cmp dword [ebp - 0x190], 0
jl 0x5d8b35
lea edx, [ebp - 0x190]
push edx
push dword [edi]
call fcn.005b830d
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov byte [edi + 0x19], 0
jmp 0x5d8b43
push dword [edi]
call fcn.005b8234
pop ecx
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0
je 0x5d8b5f
cmp dword [esi + 8], 0
jle 0x5d8b5b
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp 0x5d8b5f
mov byte [edi + 0x1c], 1
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d8b71
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x1a0], ecx
xor eax, eax
mov dword [ebp - 0x1a4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x1a0]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x1a8], edx
cmp dword [edx], 0
je 0x5d8c2f
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x12
jne 0x5d8bce
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x10]
push eax
push dword [ebp - 0xc]
call fcn.005dcfbb
add esp, 8
test eax, eax
jne 0x5da7e9
lea edx, [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x14]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
mov eax, dword [ebp - 0x1a8]
push dword [eax]
call fcn.005b7fd9
add esp, 0x14
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0
jne 0x5d8c0c
cmp dword [ebp - 0x1ac], 0
je 0x5d8c10
xor edx, edx
jmp 0x5d8c15
mov edx, 1
mov dword [ebp - 0x1a4], edx
mov ecx, dword [ebp - 0x1a8]
mov byte [ecx + 0x1f], 0
mov eax, dword [ebp - 0x1a8]
mov byte [eax + 0x60], 0
cmp byte [esi], 0x7b
jne 0x5d8c46
cmp dword [ebp - 0x1a4], 0
je 0x5d8c56
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp 0x5d8c56
cmp dword [ebp - 0x1a4], 0
jne 0x5d8c56
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
cmp byte [esi], 0x6b
je case.0x5d639d.0
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d8c71
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x1b4], edx
mov ecx, dword [ebp - 0xc]
add ecx, 0xffffffc0
mov dword [ebp - 0x1b8], ecx
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
mov dword [ebp - 0x1c8], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c4], edx
sub dword [ebp - 0xc], 0x40
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x1bc], ecx
mov eax, dword [ebp - 0x1bc]
mov edx, dword [eax]
mov dword [ebp - 0x1c0], edx
cmp dword [ebp - 0x1c0], 0
je case.0x5d639d.0
mov ecx, dword [ebp - 0x1b8]
test byte [ecx + 0x18], 0x12
jne 0x5d8d0b
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0x10]
push edx
push dword [ebp - 0x1b8]
call fcn.005dcfbb
add esp, 8
test eax, eax
jne 0x5da7e9
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x1e0], ecx
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
call fcn.005dcc64
add esp, 8
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e0]
sub eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1bc]
mov byte [edx + 0x60], 0
lea ecx, [ebp - 0x1cc]
push ecx
mov eax, dword [ebp - 0x1e4]
cdq
push edx
push eax
push dword [ebp - 0x1dc]
push dword [ebp - 0x1c0]
call fcn.005b7fd9
add esp, 0x14
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
jne 0x5da80e
cmp dword [ebp - 0x1cc], 0
jge 0x5d8dcf
lea ecx, [ebp - 0x1cc]
push ecx
push dword [ebp - 0x1c0]
call fcn.005b8246
add esp, 8
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1cc], 0
je 0x5d8dcf
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
lea edx, [ebp - 0x1cc]
push edx
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1bc]
call fcn.005dcd55
add esp, 0x10
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
jne 0x5da80e
cmp dword [ebp - 0x1cc], 0
jle 0x5d8e18
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x5d639d.0
lea eax, [ebp - 0x1d8]
push eax
push dword [ebp - 0x1c0]
call fcn.005dcc9c
add esp, 8
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
jne 0x5da80e
mov eax, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1d4]
cmp edx, dword [ebp - 0x1c4]
jne 0x5d8e68
cmp eax, dword [ebp - 0x1c8]
jne 0x5d8e68
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1d8]
mov dword [eax], edx
mov edx, dword [ebp - 0x1d4]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 4
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x1ec], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x1ec]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x1f0], edx
mov eax, dword [edx]
mov dword [ebp - 0x1f4], eax
test eax, eax
je 0x5d8f4d
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
mov dword [ebp - 0x200], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x1fc], ecx
lea eax, [ebp - 0x1f8]
push eax
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push 0
push dword [ebp - 0x1f4]
call fcn.005b7fd9
add esp, 0x14
mov ebx, eax
mov eax, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0xc], ecx
cmp dword [ebp - 0x1f8], 0
sete al
and eax, 1
mov edx, dword [ebp - 0x1f0]
mov byte [edx + 0x19], al
mov ecx, dword [ebp - 0x1f0]
mov byte [ecx + 0x1c], 0
mov eax, dword [ebp - 0x1f0]
mov byte [eax + 0x60], 0
cmp dword [ebp - 0x1f8], 0
je 0x5d8f4d
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0x1f0]
mov byte [ecx + 0x19], 0
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d8f5f
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x204], edx
add dword [ebp - 0xc], 0x40
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x3c]
mov esi, dword [ebp - 0x204]
mov ecx, dword [ecx + esi*4]
mov eax, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
add dword [ecx + 0x58], 1
adc dword [ecx + 0x5c], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x208], edx
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x214], eax
cmp dword [eax], 0
je 0x5d9345
xor edx, edx
mov dword [ebp - 0x21c], edx
xor ecx, ecx
mov dword [ebp - 0x220], ecx
mov eax, dword [ebp - 0x214]
push dword [eax]
call fcn.005bab6f
pop ecx
and eax, 3
dec eax
je 0x5d9011
mov ebx, 0xb
jmp 0x5da80e
mov eax, dword [ebp - 0x214]
cmp byte [eax + 0x1b], 0
jne 0x5d91da
mov edx, dword [ebp - 0x214]
cmp byte [edx + 0x1d], 0
je 0x5d904a
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x210], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x20c], eax
jmp 0x5d90e4
lea edx, [ebp - 0x218]
push edx
mov ecx, dword [ebp - 0x214]
push dword [ecx]
call fcn.005b7fa4
add esp, 8
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x218], 0
je 0x5d9086
mov dword [ebp - 0x210], 1
mov dword [ebp - 0x20c], 0
jmp 0x5d90e4
lea eax, [ebp - 0x210]
push eax
mov edx, dword [ebp - 0x214]
push dword [edx]
call fcn.005b7af8
add esp, 8
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x210], ecx
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x20c], ecx
cmp dword [ebp - 0x20c], 0x7fffffff
jne 0x5d90d6
cmp dword [ebp - 0x210], 0xffffffff
jne 0x5d90d6
mov eax, dword [ebp - 0x214]
mov byte [eax + 0x1b], 1
jmp 0x5d90e4
add dword [ebp - 0x210], 1
adc dword [ebp - 0x20c], 0
cmp dword [esi + 8], 0
je 0x5d9191
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x58]
mov eax, dword [esi + 8]
shl eax, 6
add ecx, eax
mov dword [ebp - 0x22c], ecx
push dword [ebp - 0x22c]
call fcn.005dd14f
pop ecx
mov edx, dword [ebp - 0x22c]
cmp dword [edx + 4], 0x7fffffff
jne 0x5d9120
cmp dword [edx], 0xffffffff
je 0x5d912e
mov ecx, dword [ebp - 0x214]
cmp byte [ecx + 0x1b], 0
je 0x5d9138
mov ebx, 0xd
jmp 0x5da80e
mov eax, dword [ebp - 0x22c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, 1
adc edx, 0
cmp edx, dword [ebp - 0x20c]
jne 0x5d915b
cmp eax, dword [ebp - 0x210]
jbe 0x5d917a
jmp 0x5d915d
jle 0x5d917a
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
add eax, 1
adc edx, 0
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x210]
mov dword [eax], edx
mov edx, dword [ebp - 0x20c]
mov dword [eax + 4], edx
cmp dword [ebp - 0x20c], 0x7fffffff
jne 0x5d91a4
cmp dword [ebp - 0x210], 0xffffffff
jae 0x5d91d0
mov ecx, dword [ebp - 0x214]
mov byte [ecx + 0x1d], 1
mov eax, dword [ebp - 0x210]
mov edx, dword [ebp - 0x20c]
add eax, 1
adc edx, 0
mov ecx, dword [ebp - 0x214]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x5d91da
mov eax, dword [ebp - 0x214]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x214]
cmp byte [edx + 0x1b], 0
je 0x5d9327
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x210], edx
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x20c], edx
xor ecx, ecx
mov dword [ebp - 0x220], ecx
cmp dword [ebp - 0x20c], 0
jne 0x5d9217
cmp dword [ebp - 0x210], 0
je 0x5d9222
cmp dword [ebp - 0x220], 2
jle 0x5d9252
lea eax, [ebp - 0x210]
push eax
push 8
call fcn.005ce673
add esp, 8
cmp dword [ebp - 0x220], 5
jge 0x5d9279
and dword [ebp - 0x210], 0xffffff
mov dword [ebp - 0x20c], 0
jmp 0x5d9279
lea edx, [ebp - 0x22d]
push edx
push 1
call fcn.005ce673
add esp, 8
xor eax, eax
mov al, byte [ebp - 0x22d]
inc eax
cdq
add dword [ebp - 0x210], eax
adc dword [ebp - 0x20c], edx
cmp dword [ebp - 0x20c], 0
jne 0x5d9289
cmp dword [ebp - 0x210], 0
je 0x5d92d4
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x228], ecx
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x224], ecx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x224]
push dword [ebp - 0x228]
push 0
mov ecx, dword [ebp - 0x214]
push dword [ecx]
call fcn.005b7fd9
add esp, 0x14
mov dword [ebp - 0x21c], eax
inc dword [ebp - 0x220]
cmp dword [ebp - 0x220], 0x3e8
jge 0x5d92f6
cmp dword [ebp - 0x21c], 0
jne 0x5d92f6
cmp dword [ebp - 0x218], 0
je 0x5d9207
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x210]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x20c]
mov dword [eax + 0x2c], edx
cmp dword [ebp - 0x21c], 0
jne 0x5d9327
cmp dword [ebp - 0x218], 0
jne 0x5d9327
mov ebx, 0xd
jmp 0x5da80e
mov eax, dword [ebp - 0x214]
mov byte [eax + 0x19], 0
mov edx, dword [ebp - 0x214]
mov byte [edx + 0x1f], 0
mov ecx, dword [ebp - 0x214]
mov byte [ecx + 0x60], 0
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x210]
mov dword [eax], edx
mov edx, dword [ebp - 0x20c]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 4
jmp case.0x5d639d.0
mov eax, dword [ebp - 0xc]
add eax, 0xffffffc0
mov dword [ebp - 0x234], eax
mov edx, dword [esi + 4]
mov dword [ebp - 0x238], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x238]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x23c], ecx
cmp dword [ecx], 0
jne 0x5d93aa
mov eax, dword [ebp - 0x23c]
cmp byte [eax + 0x1e], 0
je 0x5d956d
mov edx, dword [ebp - 0x234]
mov eax, dword [edx]
mov dword [ebp - 0x244], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x240], eax
test byte [esi + 8], 1
je 0x5d93d0
mov edx, dword [ebp + 8]
inc dword [edx + 0x238]
test byte [esi + 8], 2
je 0x5d93ea
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x234]
mov edx, dword [eax]
mov dword [ecx + 0x20], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x24], edx
mov ecx, dword [ebp - 0x23c]
cmp byte [ecx + 0x1d], 0
je 0x5d941c
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x23c]
cmp edx, dword [ecx + 0x14]
jne 0x5d9410
cmp eax, dword [ecx + 0x10]
jb 0x5d941c
jmp 0x5d9412
jl 0x5d941c
mov eax, dword [ebp - 0x23c]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 1
je 0x5d9435
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [edx + 0x14], ecx
mov eax, dword [ebp - 0x23c]
cmp byte [eax + 0x1e], 0
je 0x5d9523
mov edx, dword [ebp - 0x23c]
push dword [edx + 0x38]
call fcn.005d51a5
pop ecx
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x244]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x240]
mov dword [ecx + 0x44], eax
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebp - 0x23c]
mov dword [eax + 0x34], ecx
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d949e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x10]
mov edx, dword [ebp - 0x23c]
mov dword [edx + 0x38], eax
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp 0x5d9517
mov eax, dword [ebp - 0x23c]
mov edx, dword [eax + 0x34]
add edx, 2
push edx
call fcn.005d5178
pop ecx
mov ecx, dword [ebp - 0x23c]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x23c]
cmp dword [eax + 0x38], 0
je 0x5da7e9
mov edx, dword [ebp - 0x23c]
push dword [edx + 0x34]
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
mov eax, dword [ebp - 0x23c]
push dword [eax + 0x38]
call fcn.005dfd64
add esp, 0xc
mov edx, dword [ebp - 0x23c]
mov ecx, dword [edx + 0x34]
mov eax, dword [ebp - 0x23c]
mov edx, dword [eax + 0x38]
mov byte [edx + ecx], 0
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ecx + 0x34]
mov edx, dword [ebp - 0x23c]
mov ecx, dword [edx + 0x38]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0x23c]
mov byte [eax + 0x1c], 0
jmp 0x5d954f
mov edx, dword [ebp - 0xc]
push dword [edx + 0x14]
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
push dword [ebp - 0x240]
push dword [ebp - 0x244]
push 0
mov edx, dword [ebp - 0x23c]
push dword [edx]
call fcn.005ba0fd
add esp, 0x18
mov ebx, eax
mov eax, dword [ebp - 0x23c]
mov byte [eax + 0x19], 0
mov edx, dword [ebp - 0x23c]
mov byte [edx + 0x1f], 0
mov ecx, dword [ebp - 0x23c]
mov byte [ecx + 0x60], 0
push 2
lea eax, [ebp - 0xc]
push eax
call fcn.005d6151
add esp, 8
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x248], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x248]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x24c], ecx
mov eax, dword [ebp - 0x24c]
cmp dword [eax], 0
je 0x5d95e3
push dword [ebp - 0x24c]
call fcn.005dc63a
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov eax, dword [ebp - 0x24c]
push dword [eax]
call fcn.005ba2a2
pop ecx
mov ebx, eax
mov eax, dword [ebp - 0x24c]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x24c]
mov byte [edx + 0x60], 0
test byte [esi + 8], 1
je case.0x5d639d.0
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x238]
jmp case.0x5d639d.0
cmp dword [esi + 4], 0
je 0x5d9615
mov eax, dword [ebp + 8]
push dword [eax + 0x238]
push dword [ebp - 8]
call fcn.005dcde4
add esp, 8
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [edx + 0x238], ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x250], eax
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x250]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x254], edx
mov ecx, dword [ebp - 0x254]
cmp byte [ecx + 0x1c], 0
je 0x5d9661
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
jmp 0x5d97e0
mov edx, dword [ebp - 0x254]
cmp dword [edx], 0
je 0x5d97a2
mov ecx, dword [ebp - 0x254]
mov eax, dword [ecx]
mov dword [ebp - 0x25c], eax
push dword [ebp - 0x254]
call fcn.005dc63a
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov eax, dword [ebp - 0x254]
cmp byte [eax + 0x1c], 0
je 0x5d96ae
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 1
jmp case.0x5d639d.0
mov ecx, dword [ebp - 0x254]
cmp byte [ecx + 0x21], 0
je 0x5d96dd
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x25c]
call fcn.005b7af8
add esp, 8
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x258], eax
jmp 0x5d96f2
lea edx, [ebp - 0x258]
push edx
push dword [ebp - 0x25c]
call fcn.005b7b30
add esp, 8
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x258]
mov dword [ecx + 0x14], eax
cmp dword [ebp - 0x258], 0x20
ja 0x5d971e
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0x210
mov ecx, dword [ebp - 0xc]
add ecx, 0x20
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], ecx
jmp 0x5d975a
push dword [ebp - 0x258]
call fcn.005d5178
pop ecx
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
je 0x5da7e9
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0x50
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x268]
mov dword [edx + 0x10], ecx
mov eax, dword [ebp - 0x254]
cmp byte [eax + 0x21], 0
je 0x5d9784
mov edx, dword [ebp - 0xc]
push dword [edx + 0x10]
push dword [ebp - 0x258]
push 0
push dword [ebp - 0x25c]
call fcn.005b7cb4
add esp, 0x10
jmp 0x5d97e0
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
push dword [ebp - 0x258]
push 0
push dword [ebp - 0x25c]
call fcn.005b7ce0
add esp, 0x10
jmp 0x5d97e0
mov eax, dword [ebp - 0x254]
cmp byte [eax + 0x1e], 0
je 0x5d97d7
mov edx, dword [ebp - 0x254]
mov ecx, dword [edx + 0x34]
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x254]
mov ecx, dword [edx + 0x38]
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 0x110
jmp 0x5d97e0
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1b], 1
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x26c], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x26c]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x270], ecx
push dword [ebp - 0x270]
call fcn.005dc63a
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x5da80e
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0x270]
cmp byte [eax + 0x19], 0
je 0x5d984a
mov edx, dword [ebp - 0x270]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x278], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x274], ecx
jmp 0x5d98c4
mov eax, dword [ebp - 0x270]
cmp byte [eax + 0x1e], 0
je 0x5d9870
mov edx, dword [ebp - 0x270]
mov ecx, dword [edx + 0x40]
mov dword [ebp - 0x278], ecx
mov ecx, dword [edx + 0x44]
mov dword [ebp - 0x274], ecx
jmp 0x5d98c4
mov eax, dword [ebp - 0x270]
cmp byte [eax + 0x1c], 0
jne 0x5d9887
mov edx, dword [ebp - 0x270]
cmp dword [edx], 0
jne 0x5d9895
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp case.0x5d639d.0
lea eax, [ebp - 0x278]
push eax
mov edx, dword [ebp - 0x270]
push dword [edx]
call fcn.005b7af8
add esp, 8
mov ecx, dword [ebp - 0x278]
mov dword [ebp - 0x278], ecx
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x274], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x278]
mov dword [eax], edx
mov edx, dword [ebp - 0x274]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 4
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x27c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x280], edx
mov ecx, dword [ebp - 0x280]
mov byte [ecx + 0x1c], 1
mov eax, dword [ebp - 0x280]
mov byte [eax + 0x19], 0
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x284], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x284]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x288], ecx
mov eax, dword [ebp - 0x288]
mov edx, dword [eax]
mov dword [ebp - 0x28c], edx
test edx, edx
je 0x5d99aa
lea eax, [ebp - 0x290]
push eax
push dword [ebp - 0x28c]
call fcn.005b7fa4
add esp, 8
mov ebx, eax
mov al, byte [ebp - 0x290]
mov edx, dword [ebp - 0x288]
mov byte [edx + 0x1c], al
mov ecx, dword [ebp - 0x288]
mov byte [ecx + 0x1f], 0
mov eax, dword [ebp - 0x288]
mov byte [eax + 0x60], 0
cmp dword [ebp - 0x290], 0
je case.0x5d639d.0
cmp dword [esi + 8], 0
jle case.0x5d639d.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [ebp - 0x288]
mov byte [ecx + 0x1c], 0
jmp case.0x5d639d.0
inc dword [0x7a9330]
dec dword [0x7a9328]
mov eax, dword [esi + 4]
mov dword [ebp - 0x294], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x294]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x298], edx
mov ecx, dword [ebp - 0x298]
mov eax, dword [ecx]
mov dword [ebp - 0x29c], eax
test eax, eax
je 0x5d9a38
lea edx, [ebp - 0x2a0]
push edx
push dword [ebp - 0x29c]
call fcn.005b7f6f
add esp, 8
mov ebx, eax
cmp dword [ebp - 0x2a0], 0
sete al
and eax, 1
mov edx, dword [ebp - 0x298]
mov byte [edx + 0x1a], al
mov ecx, dword [ebp - 0x298]
mov byte [ecx + 0x1f], 0
mov eax, dword [ebp - 0x298]
mov byte [eax + 0x60], 0
jmp 0x5d9a42
mov dword [ebp - 0x2a0], 1
mov dl, byte [ebp - 0x2a0]
mov ecx, dword [ebp - 0x298]
mov byte [ecx + 0x1c], dl
cmp dword [ebp - 0x2a0], 0
je case.0x5d639d.0
cmp dword [esi + 8], 0
jle case.0x5d639d.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
mov edx, dword [ebp - 8]
test byte [edx + 8], 4
jne 0x5da848
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x2a4], ecx
mov eax, dword [ebp - 0x2a4]
mov edx, dword [eax]
mov dword [ebp - 0x2a8], edx
test edx, edx
je 0x5d9b23
mov eax, dword [ebp - 0x2a4]
cmp byte [eax + 0x1c], 0
je 0x5d9abd
mov dword [ebp - 0x2ac], 1
jmp 0x5d9b0b
cmp byte [esi], 0x69
jne 0x5d9adb
lea ecx, [ebp - 0x2ac]
push ecx
push dword [ebp - 0x2a8]
call fcn.005b8246
add esp, 8
mov ebx, eax
jmp 0x5d9af2
lea eax, [ebp - 0x2ac]
push eax
push dword [ebp - 0x2a8]
call fcn.005b830d
add esp, 8
mov ebx, eax
mov al, byte [ebp - 0x2ac]
mov edx, dword [ebp - 0x2a4]
mov byte [edx + 0x1c], al
mov ecx, dword [ebp - 0x2a4]
mov byte [ecx + 0x60], 0
cmp dword [ebp - 0x2ac], 0
jne 0x5d9b2d
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
inc dword [0x7a9328]
jmp 0x5d9b2d
mov edx, dword [ebp - 0x2a4]
mov byte [edx + 0x1c], 1
mov ecx, dword [ebp - 0x2a4]
mov byte [ecx + 0x19], 0
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x2b0], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x2b0]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x2b4], edx
mov eax, dword [edx]
mov dword [ebp - 0x2b8], eax
test eax, eax
je 0x5d9bae
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x2bc], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x2c0], edx
push 0
push 0x7ac40e
mov eax, dword [ebp - 0x2bc]
cdq
push edx
push eax
push dword [ebp - 0x2c0]
push dword [ebp - 0x2b8]
call fcn.005ba0fd
add esp, 0x18
mov ebx, eax
mov eax, dword [ebp - 0x2b4]
mov byte [eax + 0x60], 0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d9bc0
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2c4], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x2c8], eax
mov edx, dword [eax]
mov dword [ebp - 0x2cc], edx
test edx, edx
je 0x5d9c47
lea eax, [ebp - 0x2d4]
push eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x14]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
push dword [ebp - 0x2cc]
call fcn.005b7fd9
add esp, 0x14
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0
jne 0x5d9c3d
cmp dword [ebp - 0x2d4], 0
jne 0x5d9c3d
push dword [ebp - 0x2cc]
call fcn.005ba2a2
pop ecx
mov ebx, eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + 0x60], 0
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d9c59
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2d8], ecx
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 1
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x2d8]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x2e0], edx
mov eax, dword [edx]
mov dword [ebp - 0x2dc], eax
test eax, eax
je case.0x5d639d.0
mov edx, dword [ebp - 0x2e0]
cmp byte [edx + 0x1c], 0
je 0x5d9cb7
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 1
jmp case.0x5d639d.0
lea eax, [ebp - 0x2e8]
push eax
push dword [ebp - 0x2dc]
call fcn.005dcc9c
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x5da80e
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2e8]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x2e4]
mov dword [edx + 4], ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x2ec], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x2ec]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x2f0], edx
cmp dword [edx], 0
je 0x5d9dc1
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x12
jne 0x5d9d44
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x10]
push eax
push dword [ebp - 0xc]
call fcn.005dcfbb
add esp, 8
test eax, eax
jne 0x5da7e9
cmp dword [esi + 0xc], 0
setne dl
and edx, 1
mov ecx, dword [ebp - 0x2f0]
mov eax, dword [ecx + 0x48]
mov byte [eax], dl
lea edx, [ebp - 0x2f4]
push edx
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x10]
mov eax, dword [ebp - 0xc]
push dword [eax + 0x14]
push dword [ebp - 0x2f0]
call fcn.005dcd55
add esp, 0x10
mov dword [ebp - 0x2f8], eax
mov edx, dword [ebp - 0x2f0]
mov ecx, dword [edx + 0x48]
mov byte [ecx], 0
cmp dword [ebp - 0x2f8], 0
jne case.0x5d639d.0
cmp byte [esi], 0x22
jne 0x5d9da6
neg dword [ebp - 0x2f4]
jmp 0x5d9db1
cmp byte [esi], 0x39
jne 0x5d9db1
inc dword [ebp - 0x2f4]
cmp dword [ebp - 0x2f4], 0
jle 0x5d9dc1
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0xc]
test byte [edx + 0x18], 0x40
je 0x5d9dd3
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2fc], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x308], edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x304], eax
lea edx, [ebp - 0x30c]
push edx
push dword [ebp - 0x308]
call fcn.005d5b9c
add esp, 8
mov dword [ebp - 0x300], eax
jmp 0x5d9e54
lea ecx, [ebp - 0x30c]
push ecx
mov eax, dword [ebp - 0x308]
add eax, dword [ebp - 0x300]
push eax
call fcn.005d5b9c
add esp, 8
add dword [ebp - 0x300], eax
cmp dword [ebp - 0x30c], 0
jne 0x5d9e4e
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp 0x5d9e6b
dec dword [ebp - 0x2fc]
mov ecx, dword [ebp - 0x300]
cmp ecx, dword [ebp - 0x304]
jge 0x5d9e6b
cmp dword [ebp - 0x2fc], 0
jg 0x5d9e1a
mov eax, dword [ebp - 0xc]
test byte [eax + 0x18], 0x40
je 0x5d9e7d
push dword [ebp - 0xc]
call fcn.005dd091
pop ecx
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov edx, dword [ebp - 8]
cmp dword [edx + 0x4c], 1
jle 0x5d9e99
mov ebx, 6
jmp case.0x5d639d.0
lea eax, [ebp - 0x310]
push eax
push dword [esi + 4]
imul edx, dword [esi + 8], 0xe
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
push dword [eax + edx*8 + 4]
call fcn.005ba8cd
add esp, 0xc
mov ebx, eax
add dword [ebp - 0xc], 0x40
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
mov eax, dword [ebp - 0x310]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
test ebx, ebx
jne case.0x5d639d.0
cmp dword [ebp - 0x310], 0
je case.0x5d639d.0
push dword [esi + 4]
push dword [ebp - 0x310]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
imul ecx, dword [esi + 8], 0x70
add edx, ecx
push edx
call fcn.005be924
add esp, 0xc
jmp case.0x5d639d.0
push dword [esi + 4]
imul eax, dword [esi + 8], 0xe
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
push dword [ecx + eax*8 + 4]
call fcn.005ba85c
add esp, 8
mov ebx, eax
jmp case.0x5d639d.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
imul ecx, dword [esi + 4], 0x70
add edx, ecx
mov dword [ebp - 0x31c], edx
cmp byte [esi], 0x2f
jne 0x5d9f52
mov dword [ebp - 0x318], 5
jmp 0x5d9f5c
mov dword [ebp - 0x318], 2
push dword [ebp - 0x318]
lea eax, [ebp - 0x314]
push eax
mov edx, dword [ebp - 0x31c]
push dword [edx + 4]
call fcn.005ba4e0
add esp, 0xc
mov ebx, eax
add dword [ebp - 0xc], 0x40
test ebx, ebx
jne 0x5d9fa1
mov eax, dword [ebp - 0x314]
cdq
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp - 0xc]
mov word [edx + 0x18], 1
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x324], ecx
imul eax, dword [ebp - 0x324], 0xe
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
movzx eax, word [ecx + eax*8 + 0x5c]
and eax, 1
dec eax
jne case.0x5d639d.0
cmp dword [ebp - 0x324], 1
jne 0x5d9fe4
mov edx, 0x7ac40f
jmp 0x5d9fe9
mov edx, 0x7ac422
mov dword [ebp - 0x328], edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x330], eax
mov ecx, dword [ebp + 8]
add ecx, 0x22c
mov dword [ebp - 0x32c], ecx
push dword [esi + 0xc]
push dword [ebp - 0x328]
imul eax, dword [ebp - 0x324], 0xe
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
push dword [ecx + eax*8]
push dword [esi + 4]
push 0x7ac430
call fcn.005ce518
add esp, 0x14
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x320], 0
je 0x5da7e9
push dword [ebp - 8]
call fcn.005d593a
pop ecx
mov eax, dword [ebp - 8]
mov byte [eax + 0x44], 1
push 0
lea edx, [ebp - 0x330]
push edx
push fcn.005ccda3
push dword [ebp - 0x320]
push dword [ebp - 8]
call fcn.005c7b82
add esp, 0x14
mov ebx, eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x44], 0
push dword [ebp - 8]
call fcn.005d5905
pop ecx
push dword [ebp - 0x320]
call fcn.005d51a5
pop ecx
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x334], edx
push dword [ebp - 0x334]
push dword [ebp - 8]
call fcn.005bc774
add esp, 8
jmp case.0x5d639d.0
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.005bd74a
add esp, 0xc
jmp case.0x5d639d.0
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.005bd40d
add esp, 0xc
jmp case.0x5d639d.0
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.005d393d
add esp, 0xc
jmp case.0x5d639d.0
xor ecx, ecx
mov dword [ebp - 0x338], ecx
jmp 0x5da11b
mov eax, dword [ebp - 0x338]
neg eax
shl eax, 6
mov edx, dword [ebp - 0xc]
test byte [edx + eax + 0x18], 4
je 0x5da131
inc dword [ebp - 0x338]
mov ecx, dword [ebp - 0x338]
neg ecx
shl ecx, 6
add ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
cmp ecx, dword [eax + 0x28]
jae 0x5da100
mov edx, dword [ebp - 0x338]
inc edx
shl edx, 2
push edx
call fcn.005d5178
pop ecx
mov dword [ebp - 0x33c], eax
cmp dword [ebp - 0x33c], 0
je 0x5da7e9
xor ecx, ecx
mov dword [ebp - 0x340], ecx
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x338]
jge 0x5da1aa
mov edx, dword [ebp - 0x340]
neg edx
shl edx, 6
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x348], edx
mov ecx, dword [ebp - 0x348]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x33c]
mov ecx, dword [ebp - 0x340]
mov dword [edx + ecx*4], eax
inc dword [ebp - 0x340]
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x338]
jl 0x5da16b
mov edx, dword [ebp - 0x33c]
mov ecx, dword [ebp - 0x340]
xor eax, eax
mov dword [edx + ecx*4], eax
push dword [ebp - 0x338]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
add dword [ebp - 0xc], 0x40
push dword [ebp - 0x338]
push dword [ebp - 0x33c]
imul ecx, dword [esi + 8], 0xe
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
push dword [edx + ecx*8 + 4]
call fcn.005bb2fd
add esp, 0xc
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], 0
je 0x5da20d
mov ecx, dword [ebp - 0x344]
cmp byte [ecx], 0
jne 0x5da241
cmp dword [ebp - 0x344], 0
je 0x5da222
push dword [ebp - 0x344]
call fcn.005d51a5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], 0x7ac465
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x14], 2
mov ecx, dword [ebp - 0xc]
mov word [ecx + 0x18], 0xa2
jmp 0x5da270
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x344]
mov dword [eax + 0x10], edx
push dword [ebp - 0x344]
call fcn.005dfc9c
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 0x62
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1b], 1
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx + 0x10]
push ecx
push dword [ebp - 0xc]
call fcn.005dce2b
add esp, 8
push dword [ebp - 0x33c]
call fcn.005d51a5
pop ecx
jmp case.0x5d639d.0
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov eax, dword [ebp - 0xc]
push dword [eax + 4]
push dword [eax]
mov ecx, dword [ebp + 8]
add ecx, 0x60
push ecx
call fcn.005bb7a9
add esp, 0xc
sub dword [ebp - 0xc], 0x40
jmp case.0x5d639d.0
mov eax, dword [ebp - 8]
test byte [eax + 8], 4
jne 0x5da848
lea edx, [ebp - 0x350]
push edx
mov ecx, dword [ebp + 8]
add ecx, 0x60
push ecx
call fcn.005bb816
add esp, 8
cmp eax, 0x65
jne 0x5da2f9
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x5d639d.0
add dword [ebp - 0xc], 0x40
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x350]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x34c]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0xc]
mov word [eax + 0x18], 4
jmp case.0x5d639d.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x6c]
inc dword [edx + 0x6c]
mov dword [ebp - 0x354], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x70]
cmp edx, dword [ebp - 0x354]
jg 0x5da375
mov ecx, dword [ebp - 0x354]
inc ecx
mov eax, dword [ebp + 8]
mov dword [eax + 0x70], ecx
mov edx, dword [ebp - 0x354]
inc edx
mov ecx, edx
shl ecx, 2
lea ecx, [ecx + ecx*4]
push ecx
mov eax, dword [ebp + 8]
add eax, 0x74
push eax
call fcn.005d526a
add esp, 8
mov edx, dword [ebp + 8]
cmp dword [edx + 0x74], 0
je 0x5da7e9
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
mov edx, dword [ebp - 0x354]
shl edx, 2
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebp - 0x358], eax
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x20]
mov edx, dword [ebp - 0x358]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x238]
mov edx, dword [ebp - 0x358]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x358]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x60]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x64]
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x68]
mov dword [ecx + 0x10], edx
mov ecx, dword [ebp + 8]
add ecx, 0x60
push ecx
call fcn.005bb795
pop ecx
jmp case.0x5d639d.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x74]
mov ecx, dword [ebp + 8]
dec dword [ecx + 0x6c]
mov eax, dword [ecx + 0x6c]
mov ecx, eax
shl ecx, 2
lea ecx, [ecx + ecx*4]
add edx, ecx
mov dword [ebp - 0x35c], edx
mov edx, dword [ebp - 0x35c]
mov eax, dword [edx]
cdq
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov eax, dword [ebp - 0x35c]
mov edx, dword [eax + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x238], edx
mov eax, dword [ebp + 8]
add eax, 0x60
push eax
call fcn.005bb86a
pop ecx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x35c]
mov eax, dword [ecx + 8]
mov dword [edx + 0x60], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0x64], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x68], eax
jmp case.0x5d639d.0
push dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x58]
mov eax, dword [esi + 4]
shl eax, 6
add ecx, eax
push ecx
call fcn.005dd2ee
add esp, 8
mov ebx, eax
sub dword [ebp - 0xc], 0x40
cmp dword [esi + 8], 0
jne case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x360], eax
add dword [ebp - 0xc], 0x40
push pe_nt_image_headers32
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x58]
mov eax, dword [ebp - 0x360]
shl eax, 6
add ecx, eax
push ecx
push dword [ebp - 0xc]
call fcn.005dd284
add esp, 0xc
jmp case.0x5d639d.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x364], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [ebp - 0x364]
shl edx, 6
add eax, edx
mov dword [ebp - 0x368], eax
push dword [ebp - 0x368]
call fcn.005dd14f
pop ecx
push dword [ebp - 0xc]
call fcn.005dd14f
pop ecx
mov ecx, dword [ebp - 0x368]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0xc]
cmp edx, dword [ecx + 4]
jne 0x5da4fc
cmp eax, dword [ecx]
jae case.0x5d639d.0
jmp 0x5da502
jge case.0x5d639d.0
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x36c], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x58]
mov edx, dword [ebp - 0x36c]
shl edx, 6
add eax, edx
mov dword [ebp - 0x370], eax
mov ecx, dword [ebp - 0x370]
add dword [ecx], 1
adc dword [ecx + 4], 0
cmp dword [esi + 8], 0
jle case.0x5d639d.0
mov eax, dword [ebp - 0x370]
cmp dword [eax + 4], 0
jne case.0x5d639d.0
cmp dword [eax], 1
jne case.0x5d639d.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x374], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x58]
mov ecx, dword [ebp - 0x374]
shl ecx, 6
add edx, ecx
mov dword [ebp - 0x378], edx
mov eax, dword [ebp - 0x378]
cmp dword [eax + 4], 0
jne 0x5da5ad
cmp dword [eax], 0
jbe case.0x5d639d.0
jmp 0x5da5b3
jle case.0x5d639d.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x5d639d.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [esi + 4]
shl edx, 6
add eax, edx
push eax
call fcn.005dd217
pop ecx
jmp case.0x5d639d.0
mov eax, dword [esi + 4]
cdq
push edx
push eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [esi + 8]
shl edx, 6
add eax, edx
push eax
call fcn.005dd237
add esp, 0xc
jmp case.0x5d639d.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [esi + 8]
shl edx, 6
add eax, edx
push eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [esi + 4]
shl edx, 6
add eax, edx
push eax
call fcn.005dd2ee
add esp, 8
mov ebx, eax
jmp case.0x5d639d.0
mov eax, dword [esi + 8]
mov dword [ebp - 0x37c], eax
mov edx, 1
sub edx, dword [ebp - 0x37c]
shl edx, 6
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x388], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x38c], eax
xor edx, edx
mov dword [ebp - 0x380], edx
mov ecx, dword [ebp - 0x380]
cmp ecx, dword [ebp - 0x37c]
jge 0x5da6a6
mov eax, dword [ebp - 0x38c]
mov edx, dword [ebp - 0x380]
mov ecx, dword [ebp - 0x388]
mov dword [eax + edx*4], ecx
push dword [ebp - 0x388]
call fcn.005d6119
pop ecx
inc dword [ebp - 0x380]
add dword [ebp - 0x388], 0x40
mov eax, dword [ebp - 0x380]
cmp eax, dword [ebp - 0x37c]
jl 0x5da66a
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x4e0], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [esi + 4]
shl edx, 6
add eax, edx
mov dword [ebp - 0x384], eax
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x384]
inc dword [edx + 0x14]
mov byte [ebp - 0x494], 0
xor ecx, ecx
mov dword [ebp - 0x490], ecx
mov eax, dword [ebp - 0x4e0]
cmp byte [eax + 3], 0
je 0x5da6f6
mov edx, dword [esi - 8]
mov dword [ebp - 0x490], edx
push dword [ebp - 0x38c]
push dword [ebp - 0x37c]
lea ecx, [ebp - 0x4e0]
push ecx
mov eax, dword [ebp - 0x4e0]
call dword [eax + 0x14]
add esp, 0xc
push dword [ebp - 0x37c]
lea edx, [ebp - 0xc]
push edx
call fcn.005d6151
add esp, 8
cmp byte [ebp - 0x494], 0
je case.0x5d639d.0
mov ebx, 1
jmp case.0x5d639d.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x58]
mov ecx, dword [esi + 4]
shl ecx, 6
add edx, ecx
mov dword [ebp - 0x390], edx
push dword [esi + 0xc]
push dword [ebp - 0x390]
call fcn.005dd028
add esp, 8
jmp case.0x5d639d.0
push dword [ebp - 8]
call fcn.005d593a
pop ecx
test eax, eax
jne 0x5da809
push dword [ebp - 8]
mov eax, dword [ebp + 8]
add eax, 0x22c
push eax
call fcn.005d5df2
add esp, 8
mov ebx, eax
push dword [ebp - 8]
call fcn.005d5905
pop ecx
test eax, eax
jne 0x5da809
jmp case.0x5d639d.0
cmp dword [esi + 4], 0
jne 0x5da7a5
push dword [ebp - 8]
call fcn.005dce04
pop ecx
jmp case.0x5d639d.0
mov eax, dword [ebp + 8]
mov byte [eax + 0x234], 1
inc dword [ebp - 4]
test ebx, ebx
je 0x5d632c
test ebx, ebx
je 0x5da7cb
mov edx, dword [ebp + 8]
mov dword [edx + 0x7c], ebx
mov ebx, 1
jmp 0x5da7d0
mov ebx, 0x65
push dword [ebp + 8]
call fcn.005dc2b3
pop ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x2c], edx
mov eax, ebx
jmp 0x5da88e
push 0
push 0x7ac468
mov edx, dword [ebp + 8]
add edx, 0x22c
push edx
call fcn.005d5293
add esp, 0xc
mov ebx, 7
jmp 0x5da7ba
mov ebx, 0x15
mov eax, dword [ebp + 8]
cmp dword [eax + 0x22c], 0
jne 0x5da7ba
cmp dword [0x7a91f4], 0
je 0x5da828
mov ebx, 7
push 0
push ebx
call fcn.005c806e
pop ecx
push eax
mov eax, dword [ebp + 8]
add eax, 0x22c
push eax
call fcn.005d5293
add esp, 0xc
jmp 0x5da7ba
mov edx, dword [ebp - 8]
and dword [edx + 8], 0xfffffffb
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x30], 0xf03b7906
je 0x5da862
mov ebx, 0x15
jmp 0x5da867
mov ebx, 9
mov eax, dword [ebp + 8]
mov dword [eax + 0x7c], ebx
push 0
push ebx
call fcn.005c806e
pop ecx
push eax
mov edx, dword [ebp + 8]
add edx, 0x22c
push edx
call fcn.005d5293
add esp, 0xc
jmp 0x5da7ba
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret