Function at 0x5906e0
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x550
xor eax, eax
mov dword [0xd111b8], eax
push ebx
push ebp
mov ebp, dword [esp + 0x55c]
push esi
push edi
cmp dword [ebp + 0x10], 6
jb 0x592dde
mov cx, word [ebp + 0x14]
xor ebx, ebx
cmp cx, 0x96
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], eax
jae 0x5907db
mov si, word [ebp + 0x18]
cmp si, 0x96
jae 0x5907aa
and ecx, 0xffff
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea edi, [edx + edx*4]
cdq
idiv ecx
mov ecx, esi
and ecx, 0xffff
lea eax, [edx + edi*2]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [edx*8 + 0xceda68]
mov dword [esp + 0x28], eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ebx, edx
mov ecx, 0xa
cdq
idiv ecx
lea eax, [ebx + ebx*4]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], edx
lea eax, [edx + eax*2]
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [ecx*8 + 0xceda68]
jmp 0x5907d7
cmp si, 0xc8
jb 0x5907db
cmp si, 0xcf
jae 0x5907db
and esi, 0xffff
sub esi, 0xc8
lea edx, [esi*8]
sub edx, esi
lea eax, [esi + edx*4]
mov eax, dword [eax*4 + 0xcf2a18]
mov dword [esp + 0x10], eax
push eax
mov ecx, 0xced988
call fcn.0053bf30
test eax, eax
je 0x592dde
xor eax, eax
mov ax, word [ebp + 0x16]
cmp eax, 0xb
ja case.default.0x5907fd
jmp dword [eax*4 + 0x5930c8]
push 0x729
push 0x6d67a8
call fcn.0041b4a0
push 0x729
call fcn.004e84d0
mov ax, word [ebp + 0x18]
add esp, 0xc
cmp ax, 0xc8
jb 0x5908a2
cmp ax, 0xcf
jae 0x5908a2
and eax, 0xffff
mov edi, dword [0x6d68b8]
sub eax, 0xc8
mov esi, dword [0x6d68bc]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [eax + ecx*4]
movsx ecx, word [edx*4 + 0xcf2a51]
lea eax, [edx*4 + 0xcf2a30]
sub edi, ecx
mov dword [0x6d68b8], edi
movsx edx, word [eax + 0x23]
sub esi, edx
mov edx, dword [0x6d68c0]
mov dword [0x6d68bc], esi
movsx ecx, word [eax + 0x25]
sub edx, ecx
mov dword [0x6d68c0], edx
cmp word [ebp + 0x18], 0
je 0x590898
movsx edx, word [eax + 0x29]
sub dword [0x6d68c8], edx
movsx eax, word [eax + 0x27]
sub dword [0x6d68c4], eax
xor ecx, ecx
push 1
mov cx, word [ebp + 0x18]
push ecx
mov ecx, 0xced988
call fcn.0053cd60
xor edx, edx
push 1
mov dx, word [ebp + 0x14]
mov ecx, 0xced988
push edx
call fcn.0053cd60
push 1
mov ecx, 0xd11140
call fcn.0057fec0
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov ecx, 0xced988
call fcn.0052cfe0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x112], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x116], eax
mov ecx, 0x4c
mov dword [esp + 0x11a], eax
lea esi, [esp + 0x98]
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
add eax, 0x10
mov edx, dword [ecx + 4]
push eax
lea eax, [esp + 0x5c]
push 0x67433c
push eax
mov dword [esp + 0x40], edx
call fcn.006133d6
add esp, 0xc
jmp case.default.0x5907fd
xor ecx, ecx
push 1
mov cx, word [ebp + 0x14]
push ecx
mov ecx, 0xced988
call fcn.0053cd60
mov ax, word [ebp + 0x18]
cmp ax, 0x96
jae 0x590c11
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x112], edx
mov ecx, 0x4c
mov dword [esp + 0x116], edx
lea esi, [esp + 0x98]
mov dword [esp + 0x11a], edx
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], dl
mov dword [esp + 0x1c8], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c8]
lea edx, [esp + 0x30]
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x40], edx
jle 0x590bdd
mov ecx, dword [esp + 0x2c]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xcedac3]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x376], ecx
lea esi, [esp + 0x2fc]
mov dword [esp + 0x37a], ecx
lea edi, [esp + 0x430]
mov dword [esp + 0x37e], ecx
mov dword [esp + 0x42c], edx
mov byte [esp + 0x382], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x42c]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x30], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x590b58
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor edx, edx
lea esi, [esp + 0x2fc]
mov dh, byte [ebp + 0x28]
lea edi, [esp + 0x430]
or edx, eax
mov word [ebx], dx
mov ax, word [ebp + 0x1a]
mov word [ebx - 0x12], ax
mov cx, word [ebp + 0x20]
mov word [ebx - 0xc], cx
mov dx, word [ebp + 0x1c]
mov word [ebx - 0x10], dx
mov ax, word [ebp + 0x26]
mov word [ebx - 4], ax
mov cx, word [ebp + 0x1e]
mov word [ebx - 0xe], cx
mov dx, word [ebp + 0x22]
xor ecx, ecx
mov word [ebx - 0xa], dx
mov ax, word [ebp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x376], ecx
mov word [ebx - 6], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x37a], ecx
mov dword [esp + 0x37e], ecx
inc eax
mov byte [esp + 0x382], cl
mov ecx, 0x4c
mov dword [esp + 0x42c], edx
mov dword [esp + 0x28], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x42c]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x590a8c
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
add eax, 0x550
inc ecx
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x112], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x116], eax
mov dword [esp + 0x11a], eax
mov dword [esp + 0x1c8], ecx
mov ecx, 0x4c
lea esi, [esp + 0x98]
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x590a15
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov eax, dword [esp + 0x2c]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*2]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [ecx*8 + 0xceda90]
mov ecx, 0xd11140
push edx
call fcn.0057fa90
jmp 0x590e35
cmp ax, 0xc8
jb 0x590e35
cmp ax, 0xcf
jae 0x590e35
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x590dd9
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x590def
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x590e05
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x590e1b
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x590e35
mov dword [0x6d68c4], ecx
push 0x85b
push 0x6d67a8
call fcn.0041b4a0
push 0x85b
call fcn.004e84d0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x11e], ecx
lea esi, [esp + 0xa4]
mov dword [esp + 0x122], ecx
lea edi, [esp + 0x1d8]
mov dword [esp + 0x126], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x12a], cl
mov ecx, 0x4c
add esp, 0xc
lea eax, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov byte [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
push 0
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
mov al, byte [eax + 0xc]
mov byte [esp + 0x28], al
call fcn.00586da0
add esp, 8
cmp word [ebp + 0x16], 0xb
jne 0x590f01
lea edx, [esp + 0x14]
lea eax, [esp + 0x58]
push edx
push 0x67439c
push eax
call fcn.006133d6
add esp, 0xc
lea ecx, [esp + 0x14]
lea edx, [esp + 0x58]
push ecx
push 0x674320
push edx
call fcn.006133d6
lea eax, [esp + 0x64]
push 0
push eax
call fcn.00586e90
add esp, 0x14
jmp case.default.0x5907fd
xor ecx, ecx
push 1
mov cx, word [ebp + 0x14]
push ecx
mov ecx, 0xced988
call fcn.0053cd60
mov ax, word [ebp + 0x18]
cmp ax, 0x96
jae 0x5911d2
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x376], edx
mov ecx, 0x4c
mov dword [esp + 0x37a], edx
lea esi, [esp + 0x2fc]
mov dword [esp + 0x37e], edx
lea edi, [esp + 0x430]
mov byte [esp + 0x382], dl
mov dword [esp + 0x42c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x42c]
lea edx, [esp + 0x20]
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x30], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x40], edx
jle 0x59119e
mov ecx, dword [esp + 0x2c]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xcedac3]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x591118
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor edx, edx
lea esi, [esp + 0x98]
mov dh, byte [ebp + 0x28]
lea edi, [esp + 0x1cc]
or edx, eax
mov word [ebx], dx
mov ax, word [ebp + 0x1a]
mov word [ebx - 0x12], ax
mov cx, word [ebp + 0x20]
mov word [ebx - 0xc], cx
mov dx, word [ebp + 0x1c]
mov word [ebx - 0x10], dx
mov ax, word [ebp + 0x26]
mov word [ebx - 4], ax
mov cx, word [ebp + 0x1e]
mov word [ebx - 0xe], cx
mov dx, word [ebp + 0x22]
xor ecx, ecx
mov word [ebx - 0xa], dx
mov ax, word [ebp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
mov word [ebx - 6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x116], ecx
mov dword [esp + 0x11a], ecx
inc eax
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x18], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x591050
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x376], eax
add edi, 0x550
mov dword [esp + 0x37a], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x37e], eax
mov dword [esp + 0x42c], ecx
mov ecx, 0x4c
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
inc ebx
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x30], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x40], edx
jl 0x590fd9
mov ebx, dword [esp + 0x38]
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov ecx, dword [esp + 0x2c]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
jmp 0x5913f6
cmp ax, 0xc8
jb 0x5913f6
cmp ax, 0xcf
jae 0x5913f6
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x59139a
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x5913b0
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x5913c6
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x5913dc
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x5913f6
mov dword [0x6d68c4], ecx
push 0x879
push 0x6d67a8
call fcn.0041b4a0
push 0x879
call fcn.004e84d0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x11e], ecx
lea esi, [esp + 0xa4]
mov dword [esp + 0x122], ecx
lea edi, [esp + 0x1d8]
mov dword [esp + 0x126], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x12a], cl
mov ecx, 0x4c
add esp, 0xc
lea eax, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov byte [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
push 0
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
mov al, byte [eax + 0xc]
mov byte [esp + 0x28], al
call fcn.00586da0
lea edx, [esp + 0x1c]
push edx
push 0x674304
jmp 0x5920db
xor edx, edx
push 1
mov dx, word [ebp + 0x14]
mov ecx, 0xced988
push edx
call fcn.0053cd60
mov ax, word [ebp + 0x18]
cmp ax, 0x96
jae 0x5917e9
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x376], eax
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x37a], eax
mov ecx, 0x4c
mov dword [esp + 0x37e], eax
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x40], edx
jle 0x591725
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xcedac3]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x5916a3
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor edx, edx
lea esi, [esp + 0x98]
mov dh, byte [ebp + 0x28]
lea edi, [esp + 0x1cc]
or edx, eax
mov word [ebx], dx
mov ax, word [ebp + 0x1a]
mov word [ebx - 0x12], ax
mov cx, word [ebp + 0x20]
mov word [ebx - 0xc], cx
mov dx, word [ebp + 0x1c]
mov word [ebx - 0x10], dx
mov ax, word [ebp + 0x26]
mov word [ebx - 4], ax
mov cx, word [ebp + 0x1e]
mov word [ebx - 0xe], cx
mov dx, word [ebp + 0x22]
xor ecx, ecx
mov word [ebx - 0xa], dx
mov ax, word [ebp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
mov word [ebx - 6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x116], ecx
mov dword [esp + 0x11a], ecx
inc eax
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x18], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x5915db
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x376], eax
add edi, 0x550
mov dword [esp + 0x37a], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x37e], eax
mov dword [esp + 0x42c], ecx
mov ecx, 0x4c
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
inc ebx
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x40], edx
jl 0x591564
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
mov edi, dword [esp + 0x28]
xor esi, esi
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea ebx, [edx + edx*4]
cdq
idiv ecx
lea eax, [edx + ebx*2]
mov edx, eax
shl edx, 4
add edx, eax
cmp dword [edx*8 + 0xceda68], edi
je 0x5917a4
inc esi
cmp si, 0x96
jb 0x59175e
jmp 0x591a0d
and esi, 0xffff
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov esi, 0xa
lea ecx, [edx + edx*4]
cdq
idiv esi
lea eax, [edx + ecx*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
jmp 0x591a0d
cmp ax, 0xc8
jb 0x591a0d
cmp ax, 0xcf
jae 0x591a0d
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x5919b1
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x5919c7
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x5919dd
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x5919f3
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x591a0d
mov dword [0x6d68c4], ecx
push 0x70e
push 0x6d67a8
call fcn.0041b4a0
push 0x70e
call fcn.004e84d0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x11e], ecx
lea esi, [esp + 0xa4]
mov dword [esp + 0x122], ecx
lea edi, [esp + 0x1d8]
mov dword [esp + 0x126], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x12a], cl
mov ecx, 0x4c
add esp, 0xc
lea eax, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov byte [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
push 0
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
mov al, byte [eax + 0xc]
mov byte [esp + 0x28], al
call fcn.00586da0
lea edx, [esp + 0x1c]
push edx
push 0x6742d0
jmp 0x5920db
xor edx, edx
push 1
mov dx, word [ebp + 0x14]
mov ecx, 0xced988
push edx
call fcn.0053cd60
mov ax, word [ebp + 0x18]
cmp ax, 0x96
jae 0x591e02
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x376], eax
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x37a], eax
mov ecx, 0x4c
mov dword [esp + 0x37e], eax
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x34], edx
jle 0x591d3c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xcedac3]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x591cba
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor edx, edx
lea esi, [esp + 0x98]
mov dh, byte [ebp + 0x28]
lea edi, [esp + 0x1cc]
or edx, eax
mov word [ebx], dx
mov ax, word [ebp + 0x1a]
mov word [ebx - 0x12], ax
mov cx, word [ebp + 0x20]
mov word [ebx - 0xc], cx
mov dx, word [ebp + 0x1c]
mov word [ebx - 0x10], dx
mov ax, word [ebp + 0x26]
mov word [ebx - 4], ax
mov cx, word [ebp + 0x1e]
mov word [ebx - 0xe], cx
mov dx, word [ebp + 0x22]
xor ecx, ecx
mov word [ebx - 0xa], dx
mov ax, word [ebp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
mov word [ebx - 6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x116], ecx
mov dword [esp + 0x11a], ecx
inc eax
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x18], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x591bf2
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x376], eax
add edi, 0x550
mov dword [esp + 0x37a], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x37e], eax
mov dword [esp + 0x42c], ecx
mov ecx, 0x4c
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
inc ebx
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x34], edx
jl 0x591b7b
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
xor esi, esi
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea edi, [edx + edx*4]
cdq
idiv ecx
mov ecx, dword [esp + 0x28]
lea eax, [edx + edi*2]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [edx*8 + 0xceda68]
cmp eax, ecx
je 0x591dbd
inc esi
cmp si, 0x96
jb 0x591d71
jmp 0x592026
and esi, 0xffff
mov eax, 0x66666667
imul esi
sar edx, 2
mov ecx, edx
mov eax, esi
shr ecx, 0x1f
add edx, ecx
mov esi, 0xa
lea ecx, [edx + edx*4]
cdq
idiv esi
lea eax, [edx + ecx*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
jmp 0x592026
cmp ax, 0xc8
jb 0x592026
cmp ax, 0xcf
jae 0x592026
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x591fca
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x591fe0
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x591ff6
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x59200c
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x592026
mov dword [0x6d68c4], ecx
push 0x70e
push 0x6d67a8
call fcn.0041b4a0
push 0x70e
call fcn.004e84d0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x11e], ecx
lea esi, [esp + 0xa4]
mov dword [esp + 0x122], ecx
lea edi, [esp + 0x1d8]
mov dword [esp + 0x126], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x12a], cl
mov ecx, 0x4c
add esp, 0xc
lea eax, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov byte [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
push 0
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
mov al, byte [eax + 0xc]
mov byte [esp + 0x28], al
call fcn.00586da0
lea edx, [esp + 0x1c]
push edx
push 0x67429c
lea eax, [esp + 0x68]
push eax
call fcn.006133d6
lea ecx, [esp + 0x6c]
push 0
push ecx
call fcn.00586e90
add esp, 0x1c
jmp case.default.0x5907fd
xor edx, edx
push 1
mov dx, word [ebp + 0x14]
mov ecx, 0xced988
push edx
call fcn.0053cd60
mov ax, word [ebp + 0x18]
cmp ax, 0x96
jae 0x592432
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x376], eax
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x37a], eax
mov ecx, 0x4c
mov dword [esp + 0x37e], eax
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x34], edx
jle 0x59236e
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xcedac3]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x5922ec
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor edx, edx
lea esi, [esp + 0x98]
mov dh, byte [ebp + 0x28]
lea edi, [esp + 0x1cc]
or edx, eax
mov word [ebx], dx
mov ax, word [ebp + 0x1a]
mov word [ebx - 0x12], ax
mov cx, word [ebp + 0x20]
mov word [ebx - 0xc], cx
mov dx, word [ebp + 0x1c]
mov word [ebx - 0x10], dx
mov ax, word [ebp + 0x26]
mov word [ebx - 4], ax
mov cx, word [ebp + 0x1e]
mov word [ebx - 0xe], cx
mov dx, word [ebp + 0x22]
xor ecx, ecx
mov word [ebx - 0xa], dx
mov ax, word [ebp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
mov word [ebx - 6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x116], ecx
mov dword [esp + 0x11a], ecx
inc eax
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x18], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x592224
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x376], eax
add edi, 0x550
mov dword [esp + 0x37a], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x37e], eax
mov dword [esp + 0x42c], ecx
mov ecx, 0x4c
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], al
lea edx, [esp + 0x42c]
lea eax, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
inc ebx
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x34], edx
jl 0x5921ad
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
mov edi, dword [esp + 0x28]
xor esi, esi
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea ebx, [edx + edx*4]
cdq
idiv ecx
lea eax, [edx + ebx*2]
mov edx, eax
shl edx, 4
add edx, eax
cmp dword [edx*8 + 0xceda68], edi
je 0x5923ed
inc esi
cmp si, 0x96
jb 0x5923a7
jmp 0x592656
and esi, 0xffff
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov esi, 0xa
lea ecx, [edx + edx*4]
cdq
idiv esi
lea eax, [edx + ecx*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
jmp 0x592656
cmp ax, 0xc8
jb 0x592656
cmp ax, 0xcf
jae 0x592656
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x5925fa
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x592610
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x592626
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x59263c
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x592656
mov dword [0x6d68c4], ecx
push 0x897
push 0x6d67a8
call fcn.0041b4a0
push 0x897
call fcn.004e84d0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x11e], ecx
lea esi, [esp + 0xa4]
mov dword [esp + 0x122], ecx
lea edi, [esp + 0x1d8]
mov dword [esp + 0x126], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x12a], cl
mov ecx, 0x4c
add esp, 0xc
lea eax, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
mov byte [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
push 0
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
mov al, byte [eax + 0xc]
mov byte [esp + 0x28], al
call fcn.00586da0
xor edx, edx
lea eax, [esp + 0x1c]
mov dx, word [ebp + 0x28]
lea ecx, [esp + 0x60]
push edx
push eax
push 0x674264
push ecx
call fcn.006133d6
lea edx, [esp + 0x70]
push 0
push edx
call fcn.00586e90
add esp, 0x20
jmp case.default.0x5907fd
xor eax, eax
push 1
mov ax, word [ebp + 0x14]
mov ecx, 0xced988
push eax
call fcn.0053cd60
push 0x8d4
push 0x6d67a8
call fcn.0041b4a0
push 0x8d4
call fcn.004e84d0
mov ax, word [ebp + 0x18]
add esp, 0xc
cmp ax, 0x96
jae 0x592a84
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x376], ecx
lea esi, [esp + 0x2fc]
mov dword [esp + 0x37a], ecx
lea edi, [esp + 0x430]
mov dword [esp + 0x37e], ecx
mov dword [esp + 0x42c], edx
mov byte [esp + 0x382], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x42c]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x28], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x5929c0
mov eax, dword [esp + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
lea eax, [eax + edx*2]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [ecx*8 + 0xcedac3]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x112], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x116], eax
mov ecx, 0x4c
mov dword [esp + 0x11a], eax
lea esi, [esp + 0x98]
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x34], edx
jle 0x59293f
mov ebx, dword [esp + 0x1c]
and word [ebx], 0xff
mov ax, word [ebx]
xor ecx, ecx
lea esi, [esp + 0x98]
mov ch, byte [ebp + 0x28]
lea edi, [esp + 0x1cc]
or ecx, eax
mov word [ebx], cx
mov dx, word [ebp + 0x1a]
mov word [ebx - 0x12], dx
mov ax, word [ebp + 0x20]
mov word [ebx - 0xc], ax
mov cx, word [ebp + 0x1c]
mov word [ebx - 0x10], cx
mov dx, word [ebp + 0x26]
mov word [ebx - 4], dx
mov ax, word [ebp + 0x1e]
mov word [ebx - 0xe], ax
mov cx, word [ebp + 0x22]
mov word [ebx - 0xa], cx
mov ecx, dword [esp + 0x18]
mov dx, word [ebp + 0x24]
xor eax, eax
inc ecx
mov dword [esp + 0x112], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x116], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x11a], eax
mov word [ebx - 6], dx
mov ecx, 0x4c
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x592877
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x376], edx
mov ebx, dword [esp + 0x20]
add eax, 0x550
mov dword [esp + 0x37a], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x37e], edx
mov ecx, 0x4c
lea esi, [esp + 0x2fc]
lea edi, [esp + 0x430]
mov byte [esp + 0x382], dl
mov dword [esp + 0x42c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x42c]
lea edx, [esp + 0x3c]
inc ebx
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x34], edx
jl 0x592800
push 2
mov ecx, 0xd11140
call fcn.0057fec0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
mov edi, dword [esp + 0x28]
xor esi, esi
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea ebx, [edx + edx*4]
cdq
idiv ecx
lea eax, [edx + ebx*2]
mov edx, eax
shl edx, 4
add edx, eax
cmp dword [edx*8 + 0xceda68], edi
je 0x592a3f
inc esi
cmp si, 0x96
jb 0x5929f9
jmp 0x592ca8
and esi, 0xffff
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov esi, 0xa
lea ecx, [edx + edx*4]
cdq
idiv esi
lea eax, [edx + ecx*2]
mov ecx, 0xd11140
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
jmp 0x592ca8
cmp ax, 0xc8
jb 0x592ca8
cmp ax, 0xcf
jae 0x592ca8
and eax, 0xffff
sub eax, 0xc8
lea ecx, [eax*8]
sub ecx, eax
lea eax, [eax + ecx*4]
xor ecx, ecx
and word [eax*4 + 0xcf2a63], 0xff
xor eax, eax
mov ax, word [ebp + 0x18]
mov ch, byte [ebp + 0x28]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
or word [eax*4 + 0xcf2a63], cx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov dx, word [ebp + 0x1a]
mov ecx, edx
movsx esi, word [eax*4 + 0xcf2a51]
mov word [eax*4 + 0xcf2a51], dx
xor eax, eax
mov ax, word [ebp + 0x18]
and ecx, 0xffff
sub eax, 0xc8
sub ecx, esi
mov si, word [ebp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a57]
mov word [eax*4 + 0xcf2a57], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
mov dword [esp + 0x20], edx
mov si, word [ebp + 0x1c]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
mov edx, esi
and edx, 0xffff
movsx edi, word [eax*4 + 0xcf2a53]
mov word [eax*4 + 0xcf2a53], si
xor eax, eax
mov ax, word [ebp + 0x18]
sub edx, edi
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov si, word [ebp + 0x26]
mov word [eax*4 + 0xcf2a5f], si
xor eax, eax
mov ax, word [ebp + 0x18]
mov di, word [ebp + 0x1e]
sub eax, 0xc8
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
mov esi, edi
and esi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a55]
mov word [eax*4 + 0xcf2a55], di
xor eax, eax
mov ax, word [ebp + 0x18]
sub esi, ebx
sub eax, 0xc8
lea edi, [eax*8]
sub edi, eax
lea eax, [eax + edi*4]
mov di, word [ebp + 0x22]
and edi, 0xffff
movsx ebx, word [eax*4 + 0xcf2a59]
sub edi, ebx
mov bx, word [ebp + 0x22]
mov word [eax*4 + 0xcf2a59], bx
xor eax, eax
mov ax, word [ebp + 0x18]
sub eax, 0xc8
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
mov bx, word [ebp + 0x24]
mov word [eax*4 + 0xcf2a5d], bx
mov eax, dword [0x6d68b8]
add eax, ecx
mov ecx, 0x270f
cmp eax, ecx
mov dword [0x6d68b8], eax
jle 0x592c4c
mov dword [0x6d68b8], ecx
mov eax, dword [0x6d68bc]
add eax, edx
cmp eax, ecx
mov dword [0x6d68bc], eax
jle 0x592c62
mov dword [0x6d68bc], ecx
mov eax, dword [0x6d68c0]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c0], eax
jle 0x592c78
mov dword [0x6d68c0], ecx
mov eax, dword [0x6d68c8]
add eax, edi
cmp eax, ecx
mov dword [0x6d68c8], eax
jle 0x592c8e
mov dword [0x6d68c8], ecx
mov eax, dword [0x6d68c4]
mov esi, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
mov dword [0x6d68c4], eax
jle 0x592ca8
mov dword [0x6d68c4], ecx
cmp word [ebp + 0x28], 0
jne 0x592d27
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x38], ecx
push 0x67424c
lea edx, [esp + 0x60]
push edx
call fcn.006133d6
add esp, 0xc
jmp case.default.0x5907fd
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x112], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x116], eax
mov ecx, 0x4c
mov dword [esp + 0x11a], eax
lea esi, [esp + 0x98]
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
add eax, 0x10
mov edx, dword [ecx + 4]
xor ecx, ecx
mov cx, word [ebp + 0x28]
mov dword [esp + 0x34], edx
push ecx
push eax
lea edx, [esp + 0x60]
push 0x67422c
push edx
call fcn.006133d6
add esp, 0x10
mov eax, dword [0xa4f274]
test eax, eax
jne 0x592dbc
lea eax, [esp + 0x58]
push 0
push eax
call fcn.00586da0
add esp, 8
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
push 0
dec ecx
push 0
push ecx
lea ecx, [esp + 0x68]
push ecx
call fcn.004cbc90
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x550
ret
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x112], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x116], eax
mov ecx, 0x4c
mov dword [esp + 0x11a], eax
lea esi, [esp + 0x98]
lea edi, [esp + 0x1cc]
mov byte [esp + 0x11e], al
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
add eax, 0x10
mov edx, dword [ecx + 4]
push eax
lea eax, [esp + 0x5c]
push 0x674378
push eax
mov dword [esp + 0x40], edx
call fcn.006133d6
push 0x674354
call fcn.004cbc60
jmp 0x592da1
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x112], ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x116], ecx
lea edi, [esp + 0x1cc]
mov dword [esp + 0x11a], ecx
mov dword [esp + 0x1c8], edx
mov byte [esp + 0x11e], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
add eax, 0x10
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x38], ecx
push 0x674210
jmp 0x592d18
mov edi, 0x6741f0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x58]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.default.0x5907fd
mov si, word [ebp + 0x1a]
xor ecx, ecx
mov cx, word [ebp + 0x14]
push 1
push ecx
mov ecx, 0xced988
call fcn.0053cd60
xor edx, edx
push 1
mov dx, word [ebp + 0x18]
mov ecx, 0xced988
push edx
call fcn.0053cd60
push 2
mov ecx, 0xd11140
call fcn.0057fec0
lea eax, [esp + 0x54]
and esi, 0xffff
push eax
mov ecx, 0xced988
mov dword [esp + 0x58], esi
call fcn.00487810
mov ebx, dword [0xced98c]
mov dword [esp + 0x20], eax
cmp eax, ebx
je 0x592f72
mov ecx, dword [esp + 0x54]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jl 0x592f72
lea eax, [esp + 0x20]
jmp 0x592f7a
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x18]
mov edx, dword [eax]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], edx
xor esi, esi
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea ebp, [edx + edx*4]
cdq
idiv ecx
lea eax, [edx + ebp*2]
mov edx, eax
shl edx, 4
add edx, eax
cmp dword [edx*8 + 0xceda68], edi
je 0x592fc9
inc esi
cmp si, 0x96
jb 0x592f86
jmp 0x593011
mov ecx, esi
mov eax, 0x66666667
and ecx, 0xffff
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ecx, 0xa
lea esi, [edx + edx*4]
cdq
idiv ecx
mov ecx, 0xd11140
lea eax, [edx + esi*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*8 + 0xceda90]
push eax
call fcn.0057fa90
mov ebx, dword [0xced98c]
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x593081
add eax, 0x10
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov dl, byte [eax + 0xc]
mov eax, dword [0xa4f274]
mov byte [esp + 0x50], dl
mov byte [esp + 0x50], 0
test eax, eax
je 0x59305e
lea eax, [esp + 0x44]
lea ecx, [esp + 0x58]
push eax
push 0x6741c4
push ecx
call fcn.006133d6
add esp, 0xc
jmp 0x593081
lea edx, [esp + 0x44]
push 0
push edx
call fcn.00586da0
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x60]
push eax
push 0x674198
push ecx
call fcn.006133d6
add esp, 0x14
push 0x95b
push 0x6d67a8
call fcn.0041b470
push 0x95b
call fcn.004e84d0
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
push 0
dec ecx
push 0
lea edx, [esp + 0x70]
push ecx
push edx
call fcn.004cbc90
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x550
ret