Function at 0x100703c0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x101584ab
mov eax, dword fs:[0]
push eax
sub esp, 0x938
mov eax, dword [0x101b0cd0]
xor eax, esp
mov dword [esp + 0x934], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101b0cd0]
xor eax, esp
push eax
lea eax, [esp + 0x94c]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 4], ebx
je 0x100704af
mov ebp, 1
cmp word [esi + 0x16], bp
je 0x10072699
call fcn.1006d5b0
push ebx
lea ecx, [esp + 0x57c]
call fcn.1006b0b0
push esi
lea ecx, [esp + 0x57c]
mov dword [esp + 0x958], ebx
call fcn.1006b1f0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
push eax
push ebp
push ecx
push edx
lea ecx, [esp + 0x588]
call fcn.1006b6f0
lea ecx, [esp + 0x578]
call fcn.1006bf20
lea ecx, [esp + 0x578]
test al, al
jne 0x100704b6
call fcn.1006c070
add esi, 0x44
mov cl, byte [eax]
mov byte [esi], cl
add eax, ebp
add esi, ebp
test cl, cl
jne 0x10070475
lea ecx, [esp + 0x578]
mov dword [esp + 0x954], 0xffffffff
mov dword [esp + 0x578], 0x10161b4c
call fcn.1006b180
lea ecx, [esp + 0x578]
call fcn.1006b0d0
xor al, al
jmp 0x1007269b
push esi
call fcn.10077420
push esi
lea ecx, [esp + 0x57c]
call fcn.10076e90
mov eax, dword [esp + 0x95c]
dec eax
mov ecx, 8
cmp eax, ecx
ja case.default.0x100704de
jmp dword [eax*4 + 0x100726c8]
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 2
mov dword [esp + 0x44], 0xa
mov dword [esp + 0x48], 0xc
mov dword [esp + 0x4c], 4
mov dword [esp + 0x50], 0xe
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], 0xb
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], 9
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x6c], 7
mov dword [esp + 0x70], 0xd
mov dword [esp + 0x74], 5
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 1
jle 0x10072625
xor eax, eax
mov dword [esp + 0x20], eax
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
xor edi, edi
cmp dword [esi + 0xc], edi
jle 0x10070611
mov ebp, ebx
and ebp, 3
add ebp, ebp
add ebp, ebp
push ebx
push edi
mov ecx, esi
call fcn.10074510
movzx eax, al
shl eax, 4
mov ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
and ecx, reloc.WS2_32.dll_ntohs
jns 0x100705d0
dec ecx
or ecx, 0xfffffff0
inc ecx
cdq
and edx, 0xf
add eax, edx
mov edx, edi
and edx, 3
add edx, ebp
sar eax, 4
cmp dword [esp + edx*4 + 0x38], ecx
jge 0x100705f0
mov al, byte [esp + eax + 0x15]
mov byte [esp + 0x24], al
jmp 0x100705f8
mov cl, byte [esp + eax + 0x14]
mov byte [esp + 0x24], cl
mov edx, dword [esp + 0x24]
push edx
push ebx
push edi
lea ecx, [esp + 0x584]
call fcn.10074760
inc edi
cmp edi, dword [esi + 0xc]
jl 0x1007059d
mov eax, dword [esp + 0x20]
inc ebx
add eax, 0x64
cmp ebx, dword [esi + 0x10]
mov dword [esp + 0x20], eax
jl 0x10070572
jmp 0x10072625
mov dword [esp + 0x1c], ebp
xor ebp, ebp
cmp dword [esi + 0x10], ebx
jle 0x10072625
xor eax, eax
mov dword [esp + 0x20], eax
lea ecx, [ebp + 2]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
jle 0x100707f9
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], ecx
lea esp, [esp]
mov edi, dword [esp + 0x14]
push ebp
add edi, 0xfffffffe
push edi
mov ecx, esi
call fcn.10074510
mov bl, al
lea ecx, [esp + 0x578]
cmp bl, 0x80
jbe 0x100706a2
push 1
push ebp
push edi
call fcn.10074810
movzx ebx, bl
sub ebx, 0xff
jmp 0x100706ae
push 0
push ebp
push edi
call fcn.10074810
movzx ebx, bl
mov edi, dword [esp + 0x14]
push ebp
dec edi
push edi
mov ecx, esi
call fcn.10074400
movzx ecx, al
lea eax, [ebx*8]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100706ec
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
push eax
push ebp
push edi
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x14]
push ebp
push ecx
mov ecx, esi
call fcn.10074400
movzx ecx, al
lea eax, [ebx*4]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070737
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push edx
push ebp
push edi
mov ecx, esi
call fcn.10074810
add edi, 0xfffffffc
mov dword [esp + 0x24], 5
mov eax, dword [esp + 0x28]
add eax, edi
mov ecx, 4
cmp eax, ecx
ja case.default.0x10070763
jmp dword [eax*4 + 0x100726ec]
mov dword [esp + 0x1c], ecx
jmp case.default.0x10070763
mov dword [esp + 0x1c], 8
jmp case.default.0x10070763
mov dword [esp + 0x1c], 2
lea eax, [ebp + 1]
push eax
push edi
mov ecx, esi
call fcn.10074400
movzx ecx, al
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100707be
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [ebp + 1]
push eax
push edi
mov ecx, esi
call fcn.10074810
inc edi
sub dword [esp + 0x24], 1
jne 0x10070754
mov eax, dword [esp + 0x14]
dec dword [esp + 0x28]
inc eax
mov dword [esp + 0x14], eax
add eax, 0xfffffffe
cmp eax, dword [esi + 0xc]
jl 0x10070670
mov ecx, 2
mov eax, dword [esp + 0x20]
inc ebp
add eax, 0x64
cmp ebp, dword [esi + 0x10]
mov dword [esp + 0x20], eax
jl 0x10070643
jmp 0x10072625
xor ecx, ecx
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x14], ecx
jle 0x10072625
xor eax, eax
mov dword [esp + 0x30], eax
lea edi, [ecx + 2]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
jle 0x10070ad7
lea eax, [ecx + 2]
dec eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
lea esp, [esp]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
push edx
add edi, 0xfffffffe
push edi
mov ecx, esi
call fcn.10074510
mov bl, al
cmp bl, 0x80
jbe 0x1007089a
mov eax, dword [esp + 0x14]
push 1
push eax
push edi
lea ecx, [esp + 0x584]
call fcn.10074810
movzx ebx, bl
sub ebx, 0xff
jmp 0x100708b1
mov ecx, dword [esp + 0x14]
push 0
push ecx
push edi
lea ecx, [esp + 0x584]
call fcn.10074810
movzx ebx, bl
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
push edx
dec edi
push edi
mov ecx, esi
call fcn.10074400
movzx eax, al
mov dword [esp + 0x2c], eax
lea ecx, [ebx*8]
mov eax, 0x30c30c31
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070903
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
push edi
mov ecx, esi
call fcn.10074810
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push edx
push eax
mov ecx, esi
call fcn.10074400
movzx edi, al
lea ecx, [ebx*4]
mov eax, 0x30c30c31
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edi, edx
add ecx, edi
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x1007095e
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
push ecx
push edx
push edi
mov ecx, esi
call fcn.10074810
add edi, 0xfffffffc
mov dword [esp + 0x20], 5
nop
mov eax, dword [esp + 0x28]
add eax, edi
cmp eax, 4
ja case.default.0x1007098b
jmp dword [eax*4 + 0x10072700]
mov ebp, 4
jmp case.default.0x1007098b
mov ebp, 8
jmp case.default.0x1007098b
mov ebp, 2
mov ecx, dword [esp + 0x24]
push ecx
push edi
mov ecx, esi
call fcn.10074400
movzx eax, al
mov ecx, ebx
imul ecx, ebp
mov dword [esp + 0x2c], eax
mov eax, 0x30c30c31
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100709f0
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push edx
push eax
push edi
mov ecx, esi
call fcn.10074810
inc edi
sub dword [esp + 0x20], 1
jne 0x10070980
mov edi, dword [esp + 0x1c]
add edi, 0xfffffffc
mov dword [esp + 0x20], 5
lea ecx, [ecx]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + edi]
cmp eax, 4
ja case.default.0x10070a2c
jmp dword [eax*4 + 0x10072714]
mov ebp, 2
jmp case.default.0x10070a2c
mov ebp, 4
jmp case.default.0x10070a2c
mov ebp, 1
mov eax, dword [esp + 0x14]
add eax, 2
push eax
push edi
mov ecx, esi
call fcn.10074400
movzx eax, al
mov ecx, ebx
imul ecx, ebp
mov dword [esp + 0x2c], eax
mov eax, 0x30c30c31
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070a94
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
add eax, 2
push eax
push edi
mov ecx, esi
call fcn.10074810
inc edi
sub dword [esp + 0x20], 1
jne 0x10070a20
mov eax, dword [esp + 0x1c]
dec dword [esp + 0x28]
inc eax
mov dword [esp + 0x1c], eax
add eax, 0xfffffffe
cmp eax, dword [esi + 0xc]
jl 0x10070860
mov ecx, dword [esp + 0x14]
mov edi, 2
mov eax, dword [esp + 0x30]
inc ecx
add eax, 0x64
cmp ecx, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
jl 0x1007082b
jmp 0x10072625
xor ecx, ecx
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x14], ecx
jle 0x10072625
xor eax, eax
mov dword [esp + 0x20], eax
lea edi, [ecx + 2]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
jle 0x10070db5
lea eax, [ecx + 2]
dec eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
mov edi, edi
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
push eax
add edi, 0xfffffffe
push edi
mov ecx, esi
call fcn.10074510
mov bl, al
cmp bl, 0x80
jbe 0x10070b7a
mov ecx, dword [esp + 0x14]
push 1
push ecx
push edi
lea ecx, [esp + 0x584]
call fcn.10074810
movzx edi, bl
sub edi, 0xff
jmp 0x10070b91
mov edx, dword [esp + 0x14]
push 0
push edx
push edi
lea ecx, [esp + 0x584]
call fcn.10074810
movzx edi, bl
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
push eax
dec ebx
push ebx
mov ecx, esi
call fcn.10074400
movzx eax, al
mov dword [esp + 0x2c], eax
lea ecx, [edi*8]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070be5
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.10074810
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.10074400
movzx ebx, al
lea ecx, [edi + edi*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ebx, edx
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070c3c
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
push edx
push eax
push ebx
mov ecx, esi
call fcn.10074810
add ebx, 0xfffffffc
mov dword [esp + 0x24], 5
lea ecx, [ecx]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + ebx]
cmp eax, 4
ja case.default.0x10070c6c
jmp dword [eax*4 + 0x10072728]
mov ebp, 5
jmp case.default.0x10070c6c
mov ebp, 7
jmp case.default.0x10070c6c
mov ebp, 3
mov edx, dword [esp + 0x30]
push edx
push ebx
mov ecx, esi
call fcn.10074400
movzx eax, al
mov ecx, edi
imul ecx, ebp
mov dword [esp + 0x2c], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070cd1
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.10074810
inc ebx
sub dword [esp + 0x24], 1
jne 0x10070c60
mov ebx, dword [esp + 0x1c]
add ebx, 0xfffffffc
mov dword [esp + 0x24], 5
mov edx, dword [esp + 0x28]
lea eax, [edx + ebx]
cmp eax, 4
ja case.default.0x10070d0a
jmp dword [eax*4 + 0x1007273c]
mov ebp, 3
jmp case.default.0x10070d0a
mov ebp, 5
jmp case.default.0x10070d0a
mov ebp, 1
mov eax, dword [esp + 0x14]
add eax, 2
push eax
push ebx
mov ecx, esi
call fcn.10074400
movzx eax, al
mov ecx, edi
imul ecx, ebp
mov dword [esp + 0x2c], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 3
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070d72
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
push ebx
mov ecx, esi
call fcn.10074810
inc ebx
sub dword [esp + 0x24], 1
jne 0x10070cfe
mov eax, dword [esp + 0x1c]
dec dword [esp + 0x28]
inc eax
mov dword [esp + 0x1c], eax
add eax, 0xfffffffe
cmp eax, dword [esi + 0xc]
jl 0x10070b40
mov ecx, dword [esp + 0x14]
mov edi, 2
mov eax, dword [esp + 0x20]
inc ecx
add eax, 0x64
cmp ecx, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
jl 0x10070b0d
jmp 0x10072625
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebx
jle 0x10072625
mov dword [esp + 0x24], 0
lea esp, [esp]
mov eax, dword [esp + 0x24]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
mov dword [esp + 0x28], 0
jle 0x10071020
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], 2
mov edi, edi
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
push edi
push ebp
mov ecx, esi
call fcn.10074510
mov bl, al
lea ecx, [esp + 0x578]
cmp bl, 0x80
jbe 0x10070e63
push 1
push edi
push ebp
call fcn.10074810
movzx ebx, bl
sub ebx, 0xff
jmp 0x10070e6f
push 0
push edi
push ebp
call fcn.10074810
movzx ebx, bl
add ebp, 2
lea eax, [ebp - 1]
push edi
push eax
mov ecx, esi
call fcn.10074400
movzx ecx, al
lea eax, [ebx + ebx*4]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070eaa
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0x18]
push ecx
push edi
lea eax, [ebp - 1]
push eax
mov ecx, esi
call fcn.10074810
push edi
push ebp
mov ecx, esi
call fcn.10074400
movzx ecx, al
lea eax, [ebx + ebx*2]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070ef0
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
push edx
push edi
push ebp
mov ecx, esi
call fcn.10074810
lea edi, [ebp - 4]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x2c], 5
mov eax, dword [esp + 0x20]
add eax, edi
cmp eax, 4
ja case.default.0x10070f18
jmp dword [eax*4 + 0x10072750]
mov ebp, 4
jmp case.default.0x10070f18
mov ebp, 5
jmp case.default.0x10070f18
mov ebp, 2
mov ecx, dword [esp + 0x30]
push ecx
push edi
mov ecx, esi
call fcn.10074400
movzx ecx, al
mov eax, ebx
imul eax, ebp
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070f6d
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
push edx
push eax
push edi
mov ecx, esi
call fcn.10074810
inc edi
sub dword [esp + 0x2c], 1
jne 0x10070f0d
mov dword [esp + 0x1c], ebp
or ebp, 0xffffffff
cmp ebp, 0xffffffff
je 0x10070fa0
test ebp, ebp
je 0x1007103c
cmp ebp, 1
jne 0x10070fa8
mov dword [esp + 0x1c], 2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add eax, 2
lea edi, [ecx + ebp]
push eax
push edi
mov ecx, esi
call fcn.10074400
movzx ecx, al
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10070fef
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
add eax, 2
push eax
push edi
mov ecx, esi
call fcn.10074810
inc ebp
cmp ebp, 2
jl 0x10070f8e
mov eax, dword [esp + 0x28]
dec dword [esp + 0x20]
inc eax
cmp eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
jl 0x10070e30
mov eax, dword [esp + 0x14]
add dword [esp + 0x24], 0x64
inc eax
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
jl 0x10070df0
jmp 0x10072625
mov dword [esp + 0x1c], 3
jmp 0x10070fa8
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x18], ebx
jle 0x10072625
xor eax, eax
mov dword [esp + 0x30], eax
lea esp, [esp]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
jle 0x100714cd
mov ebp, 2
push ebx
lea edi, [ebp - 2]
push edi
mov ecx, esi
call fcn.10074510
mov byte [esp + 0x14], al
lea ecx, [esp + 0x578]
cmp al, 0x80
jbe 0x100710b7
push 1
push ebx
push edi
call fcn.10074810
movzx edi, byte [esp + 0x14]
sub edi, 0xff
jmp 0x100710c5
push 0
push ebx
push edi
call fcn.10074810
movzx edi, byte [esp + 0x14]
push ebx
push ebp
mov ecx, esi
call fcn.10074400
movzx ebx, al
mov ecx, edi
shl ecx, 5
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ebx, edx
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10071104
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push ebp
mov ecx, esi
call fcn.10074810
lea edx, [edi + edi*2]
add edx, edx
add edx, edx
mov eax, 0x51eb851f
imul edx
mov eax, dword [esp + 0x18]
sar edx, 6
inc eax
lea ecx, [ebp - 5]
mov ebx, edx
push eax
mov dword [esp + 0x28], ecx
push ecx
shr ebx, 0x1f
mov ecx, esi
add ebx, edx
call fcn.10074400
movzx ecx, al
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10071163
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push edx
inc eax
push eax
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.10074810
mov edx, edi
imul edx, edx, 0x1a
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
inc eax
lea ecx, [ebp - 3]
push eax
mov dword [esp + 0x24], ecx
push ecx
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, dword [esp + 0x2c]
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100711cb
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push ecx
inc eax
push eax
push edx
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x18]
inc ecx
lea eax, [ebp - 1]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.10074400
movzx eax, al
mov dword [esp + 0x1c], eax
mov ecx, edi
shl ecx, 4
sub ecx, edi
add ecx, ecx
mov eax, 0x51eb851f
imul ecx
mov eax, dword [esp + 0x1c]
sar edx, 6
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10071239
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
inc eax
push eax
push ecx
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x18]
inc ecx
lea eax, [ebp + 1]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.10074400
movzx eax, al
mov dword [esp + 0x34], eax
mov ecx, edi
shl ecx, 4
mov eax, 0x51eb851f
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 6
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100712a3
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push edx
inc eax
push eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x18]
add ecx, 2
push ecx
lea eax, [ebp - 4]
push eax
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100712ed
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
add eax, 2
push eax
lea eax, [ebp - 4]
push eax
mov ecx, esi
call fcn.10074810
mov eax, dword [esp + 0x18]
add eax, 2
push eax
lea eax, [ebp - 2]
push eax
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, dword [esp + 0x2c]
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x1007133a
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push edx
add eax, 2
push eax
lea eax, [ebp - 2]
push eax
mov ecx, esi
call fcn.10074810
mov eax, dword [esp + 0x18]
add eax, 2
push eax
push ebp
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10071382
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
push ebp
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.10074810
mov ecx, dword [esp + 0x24]
lea edi, [edi + edi*4]
mov eax, 0x51eb851f
imul edi
mov eax, dword [esp + 0x34]
sar edx, 6
inc eax
mov edi, edx
push eax
push ecx
shr edi, 0x1f
mov ecx, esi
add edi, edx
call fcn.10074400
movzx ecx, al
add ecx, edi
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100713e1
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add eax, 2
push edx
lea ebp, [eax + 1]
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x20]
push ebp
push ecx
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x1007142a
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push edx
push ebp
push eax
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x28]
push ebp
push ecx
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, ebx
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10071469
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
push edx
push ebp
push eax
mov ecx, esi
call fcn.10074810
mov ecx, dword [esp + 0x1c]
push ebp
push ecx
mov ecx, esi
call fcn.10074400
movzx ecx, al
add ecx, edi
mov eax, 0
sets al
mov byte [esp + 0x14], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100714a8
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
push edx
lea eax, [ebx + 3]
push eax
push ebp
mov ecx, esi
call fcn.10074810
lea eax, [ebp - 2]
cmp eax, dword [esi + 0xc]
jl 0x10071086
mov eax, dword [esp + 0x30]
inc ebx
add eax, 0x64
cmp ebx, dword [esi + 0x10]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], eax
jl 0x10071060
jmp 0x10072625
push 0x100
call fcn.10054f2b
add esp, 4
mov dword [esp + 0x20], eax
xor ebp, ebp
mov edi, edi
mov eax, ebp
cdq
and edx, 3
add eax, edx
mov ecx, ebp
sar eax, 2
and ecx, reloc.WS2_32.dll_closesocket
mov edi, 4
jns 0x1007151f
dec ecx
or ecx, 0xfffffffc
inc ecx
xor edx, edx
mov ebx, ecx
xor ebx, eax
add edx, edx
and ebx, 1
or ebx, edx
mov edx, ecx
add ebx, ebx
and edx, 1
dec edi
or edx, ebx
sar eax, 1
sar ecx, 1
test edi, edi
jg 0x10071521
mov eax, dword [esp + 0x20]
mov byte [eax + ebp], dl
inc ebp
cmp ebp, 0x100
jl 0x10071500
xor ebp, ebp
cmp dword [esi + 0x10], ebp
jle 0x100715e2
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x24]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x100715e2
xor edi, edi
cmp dword [esi + 0xc], edi
jle 0x100715d3
mov ebx, ebp
and ebx, reloc.WS2_32.dll_closesocket
jns 0x1007158a
dec ebx
or ebx, 0xfffffffc
inc ebx
add ebx, ebx
add ebx, ebx
mov edi, edi
push ebp
push edi
mov ecx, esi
call fcn.10074510
mov ecx, edi
and ecx, reloc.WS2_32.dll_closesocket
movzx eax, al
jns 0x100715ab
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edx, dword [esp + 0x20]
add ecx, ebx
movzx ecx, byte [ecx + edx]
cmp eax, ecx
lea ecx, [esp + 0x578]
jle 0x100715c4
push 1
jmp 0x100715c6
push 0
push ebp
push edi
call fcn.10074810
inc edi
cmp edi, dword [esi + 0xc]
jl 0x10071590
add dword [esp + 0x24], 0x64
inc ebp
cmp ebp, dword [esi + 0x10]
jl 0x1007155d
mov edx, dword [esp + 0x20]
push edx
call fcn.10054ff5
add esp, 4
jmp 0x10072625
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0x20
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0x28
mov dword [esp + 0x88], 2
mov dword [esp + 0x8c], 0x22
mov dword [esp + 0x90], 0xa
mov dword [esp + 0x94], 0x2a
mov dword [esp + 0x98], 0x30
mov dword [esp + 0x9c], 0x10
mov dword [esp + 0xa0], 0x38
mov dword [esp + 0xa4], 0x18
mov dword [esp + 0xa8], 0x32
mov dword [esp + 0xac], 0x12
mov dword [esp + 0xb0], 0x3a
mov dword [esp + 0xb4], 0x1a
mov dword [esp + 0xb8], 0xc
mov dword [esp + 0xbc], 0x2c
mov dword [esp + 0xc0], 4
mov dword [esp + 0xc4], 0x24
mov dword [esp + 0xc8], 0xe
mov dword [esp + 0xcc], 0x2e
mov dword [esp + 0xd0], 6
mov dword [esp + 0xd4], 0x26
mov dword [esp + 0xd8], 0x3c
mov dword [esp + 0xdc], 0x1c
mov dword [esp + 0xe0], 0x34
mov dword [esp + 0xe4], 0x14
mov dword [esp + 0xe8], 0x3e
mov dword [esp + 0xec], 0x1e
mov dword [esp + 0xf0], 0x36
mov dword [esp + 0xf4], 0x16
mov dword [esp + 0xf8], 3
mov dword [esp + 0xfc], 0x23
mov dword [esp + 0x100], 0xb
mov dword [esp + 0x104], 0x2b
mov dword [esp + 0x108], ebp
mov dword [esp + 0x10c], 0x21
mov dword [esp + 0x110], 9
mov dword [esp + 0x114], 0x29
mov dword [esp + 0x118], 0x33
mov dword [esp + 0x11c], 0x13
mov dword [esp + 0x120], 0x3b
mov dword [esp + 0x124], 0x1b
mov dword [esp + 0x128], 0x31
mov dword [esp + 0x12c], 0x11
mov dword [esp + 0x130], 0x39
mov dword [esp + 0x134], 0x19
mov dword [esp + 0x138], 0xf
mov dword [esp + 0x13c], 0x2f
mov dword [esp + 0x140], 7
mov dword [esp + 0x144], 0x27
mov dword [esp + 0x148], 0xd
mov dword [esp + 0x14c], 0x2d
mov dword [esp + 0x150], 5
mov dword [esp + 0x154], 0x25
mov dword [esp + 0x158], 0x3f
mov dword [esp + 0x15c], 0x1f
mov dword [esp + 0x160], 0x37
mov dword [esp + 0x164], 0x17
mov dword [esp + 0x168], 0x3d
mov dword [esp + 0x16c], 0x1d
mov dword [esp + 0x170], 0x35
mov dword [esp + 0x174], 0x15
jle 0x10072625
xor ebp, ebp
mov eax, ebp
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
xor edi, edi
cmp dword [esi + 0xc], edi
jle 0x10071910
lea ecx, [ecx]
push ebx
push edi
mov ecx, esi
call fcn.10074510
movzx eax, al
shr eax, 2
test eax, eax
je 0x100718fa
mov ecx, edi
mov edx, ebx
and ecx, 7
and edx, 7
lea ecx, [edx + ecx*8]
cmp eax, dword [esp + ecx*4 + 0x78]
jl 0x100718fa
push 1
jmp 0x100718fc
push 0
push ebx
push edi
lea ecx, [esp + 0x584]
call fcn.10074810
inc edi
cmp edi, dword [esi + 0xc]
jl 0x100718d0
inc ebx
add ebp, 0x64
cmp ebx, dword [esi + 0x10]
jl 0x100718ad
jmp 0x10072625
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], 0xeb
mov dword [esp + 0x180], 0x3b
mov dword [esp + 0x184], 0xdb
mov dword [esp + 0x188], 0xf
mov dword [esp + 0x18c], 0xe7
mov dword [esp + 0x190], 0x37
mov dword [esp + 0x194], 0xd7
mov dword [esp + 0x198], 2
mov dword [esp + 0x19c], 0xe8
mov dword [esp + 0x1a0], 0x38
mov dword [esp + 0x1a4], 0xd8
mov dword [esp + 0x1a8], 0xc
mov dword [esp + 0x1ac], 0xe4
mov dword [esp + 0x1b0], 0x34
mov dword [esp + 0x1b4], 0xd4
mov dword [esp + 0x1b8], 0x81
mov dword [esp + 0x1bc], 0x41
mov dword [esp + 0x1c0], 0xbb
mov dword [esp + 0x1c4], 0x7b
mov dword [esp + 0x1c8], 0x8f
mov dword [esp + 0x1cc], 0x4f
mov dword [esp + 0x1d0], 0xb7
mov dword [esp + 0x1d4], 0x77
mov dword [esp + 0x1d8], 0x82
mov dword [esp + 0x1dc], 0x42
mov dword [esp + 0x1e0], 0xb8
mov dword [esp + 0x1e4], 0x78
mov dword [esp + 0x1e8], 0x8c
mov dword [esp + 0x1ec], 0x4c
mov dword [esp + 0x1f0], 0xb4
mov dword [esp + 0x1f4], 0x74
mov dword [esp + 0x1f8], 0x21
mov dword [esp + 0x1fc], 0xc1
mov dword [esp + 0x200], 0x11
mov dword [esp + 0x204], 0xfb
mov dword [esp + 0x208], 0x2f
mov dword [esp + 0x20c], 0xcf
mov dword [esp + 0x210], 0x1f
mov dword [esp + 0x214], 0xf7
mov dword [esp + 0x218], 0x22
mov dword [esp + 0x21c], 0xc2
mov dword [esp + 0x220], 0x12
mov dword [esp + 0x224], 0xf8
mov dword [esp + 0x228], 0x2c
mov dword [esp + 0x22c], 0xcc
mov dword [esp + 0x230], 0x1c
mov dword [esp + 0x234], 0xf4
mov dword [esp + 0x238], 0xa1
mov dword [esp + 0x23c], 0x61
mov dword [esp + 0x240], 0x91
mov dword [esp + 0x244], 0x51
mov dword [esp + 0x248], 0xaf
mov dword [esp + 0x24c], 0x6f
mov dword [esp + 0x250], 0x9f
mov dword [esp + 0x254], 0x5f
mov dword [esp + 0x258], 0xa2
mov dword [esp + 0x25c], 0x62
mov dword [esp + 0x260], 0x92
mov dword [esp + 0x264], 0x52
mov dword [esp + 0x268], 0xac
mov dword [esp + 0x26c], 0x6c
mov dword [esp + 0x270], 0x9c
mov dword [esp + 0x274], 0x5c
mov dword [esp + 0x278], 9
mov dword [esp + 0x27c], 0xe1
mov dword [esp + 0x280], 0x31
mov dword [esp + 0x284], 0xd1
mov dword [esp + 0x288], 5
mov dword [esp + 0x28c], 0xef
mov dword [esp + 0x290], 0x3f
mov dword [esp + 0x294], 0xdf
mov dword [esp + 0x298], 0xa
mov dword [esp + 0x29c], 0xe2
mov dword [esp + 0x2a0], 0x32
mov dword [esp + 0x2a4], 0xd2
mov dword [esp + 0x2a8], 6
mov dword [esp + 0x2ac], 0xec
mov dword [esp + 0x2b0], 0x3c
mov dword [esp + 0x2b4], 0xdc
mov dword [esp + 0x2b8], 0x89
mov dword [esp + 0x2bc], 0x49
mov dword [esp + 0x2c0], 0xb1
mov dword [esp + 0x2c4], 0x71
mov dword [esp + 0x2c8], 0x85
mov dword [esp + 0x2cc], 0x45
mov dword [esp + 0x2d0], 0xbf
mov dword [esp + 0x2d4], 0x7f
mov dword [esp + 0x2d8], 0x8a
mov dword [esp + 0x2dc], 0x4a
mov dword [esp + 0x2e0], 0xb2
mov dword [esp + 0x2e4], 0x72
mov dword [esp + 0x2e8], 0x86
mov dword [esp + 0x2ec], 0x46
mov dword [esp + 0x2f0], 0xbc
mov dword [esp + 0x2f4], 0x7c
mov dword [esp + 0x2f8], 0x29
mov dword [esp + 0x2fc], 0xc9
mov dword [esp + 0x300], 0x19
mov dword [esp + 0x304], 0xf1
mov dword [esp + 0x308], 0x25
mov dword [esp + 0x30c], 0xc5
mov dword [esp + 0x310], 0x15
mov dword [esp + 0x314], 0xff
mov dword [esp + 0x318], 0x2a
mov dword [esp + 0x31c], 0xca
mov dword [esp + 0x320], 0x1a
mov dword [esp + 0x324], 0xf2
mov dword [esp + 0x328], 0x26
mov dword [esp + 0x32c], 0xc6
mov dword [esp + 0x330], 0x16
mov dword [esp + 0x334], 0xfc
mov dword [esp + 0x338], 0xa9
mov dword [esp + 0x33c], 0x69
mov dword [esp + 0x340], 0x99
mov dword [esp + 0x344], 0x59
mov dword [esp + 0x348], 0xa5
mov dword [esp + 0x34c], 0x65
mov dword [esp + 0x350], 0x95
mov dword [esp + 0x354], 0x55
mov dword [esp + 0x358], 0xaa
mov dword [esp + 0x35c], 0x6a
mov dword [esp + 0x360], 0x9a
mov dword [esp + 0x364], 0x5a
mov dword [esp + 0x368], 0xa6
mov dword [esp + 0x36c], 0x66
mov dword [esp + 0x370], 0x96
mov dword [esp + 0x374], 0x56
mov dword [esp + 0x378], 3
mov dword [esp + 0x37c], 0xe9
mov dword [esp + 0x380], 0x39
mov dword [esp + 0x384], 0xd9
mov dword [esp + 0x388], 0xd
mov dword [esp + 0x38c], 0xe5
mov dword [esp + 0x390], 0x35
mov dword [esp + 0x394], 0xd5
mov dword [esp + 0x398], ebx
mov dword [esp + 0x39c], 0xea
mov dword [esp + 0x3a0], 0x3a
mov dword [esp + 0x3a4], 0xda
mov dword [esp + 0x3a8], 0xe
mov dword [esp + 0x3ac], 0xe6
mov dword [esp + 0x3b0], 0x36
mov dword [esp + 0x3b4], 0xd6
mov dword [esp + 0x3b8], 0x83
mov dword [esp + 0x3bc], 0x43
mov dword [esp + 0x3c0], 0xb9
mov dword [esp + 0x3c4], 0x79
mov dword [esp + 0x3c8], 0x8d
mov dword [esp + 0x3cc], 0x4d
mov dword [esp + 0x3d0], 0xb5
mov dword [esp + 0x3d4], 0x75
mov dword [esp + 0x3d8], 0x80
mov dword [esp + 0x3dc], 0x40
mov dword [esp + 0x3e0], 0xba
mov dword [esp + 0x3e4], 0x7a
mov dword [esp + 0x3e8], 0x8e
mov dword [esp + 0x3ec], 0x4e
mov dword [esp + 0x3f0], 0xb6
mov dword [esp + 0x3f4], 0x76
mov dword [esp + 0x3f8], 0x23
mov dword [esp + 0x3fc], 0xc3
mov dword [esp + 0x400], 0x13
mov dword [esp + 0x404], 0xf9
mov dword [esp + 0x408], 0x2d
mov dword [esp + 0x40c], 0xcd
mov dword [esp + 0x410], 0x1d
mov dword [esp + 0x414], 0xf5
mov dword [esp + 0x418], 0x20
mov dword [esp + 0x41c], 0xc0
mov dword [esp + 0x420], 0x10
mov dword [esp + 0x424], 0xfa
mov dword [esp + 0x428], 0x2e
mov dword [esp + 0x42c], 0xce
mov dword [esp + 0x430], 0x1e
mov dword [esp + 0x434], 0xf6
mov dword [esp + 0x438], 0xa3
mov dword [esp + 0x43c], 0x63
mov dword [esp + 0x440], 0x93
mov dword [esp + 0x444], 0x53
mov dword [esp + 0x448], 0xad
mov dword [esp + 0x44c], 0x6d
mov dword [esp + 0x450], 0x9d
mov dword [esp + 0x454], 0x5d
mov dword [esp + 0x458], 0xa0
mov dword [esp + 0x45c], 0x60
mov dword [esp + 0x460], 0x90
mov dword [esp + 0x464], 0x50
mov dword [esp + 0x468], 0xae
mov dword [esp + 0x46c], 0x6e
mov dword [esp + 0x470], 0x9e
mov dword [esp + 0x474], 0x5e
mov dword [esp + 0x478], 0xb
mov dword [esp + 0x47c], 0xe3
mov dword [esp + 0x480], 0x33
mov dword [esp + 0x484], 0xd3
mov dword [esp + 0x488], 7
mov dword [esp + 0x48c], 0xed
mov dword [esp + 0x490], 0x3d
mov dword [esp + 0x494], 0xdd
mov dword [esp + 0x498], ecx
mov dword [esp + 0x49c], 0xe0
mov dword [esp + 0x4a0], 0x30
mov dword [esp + 0x4a4], 0xd0
mov dword [esp + 0x4a8], 4
mov dword [esp + 0x4ac], 0xee
mov dword [esp + 0x4b0], 0x3e
mov dword [esp + 0x4b4], 0xde
mov dword [esp + 0x4b8], 0x8b
mov dword [esp + 0x4bc], 0x4b
mov dword [esp + 0x4c0], 0xb3
mov dword [esp + 0x4c4], 0x73
mov dword [esp + 0x4c8], 0x87
mov dword [esp + 0x4cc], 0x47
mov dword [esp + 0x4d0], 0xbd
mov dword [esp + 0x4d4], 0x7d
mov dword [esp + 0x4d8], 0x88
mov dword [esp + 0x4dc], 0x48
mov dword [esp + 0x4e0], 0xb0
mov dword [esp + 0x4e4], 0x70
mov dword [esp + 0x4e8], 0x84
mov dword [esp + 0x4ec], 0x44
mov dword [esp + 0x4f0], 0xbe
mov dword [esp + 0x4f4], 0x7e
mov dword [esp + 0x4f8], 0x2b
mov dword [esp + 0x4fc], 0xcb
mov dword [esp + 0x500], 0x1b
mov dword [esp + 0x504], 0xf3
mov dword [esp + 0x508], 0x27
mov dword [esp + 0x50c], 0xc7
mov dword [esp + 0x510], 0x17
mov dword [esp + 0x514], 0xfd
mov dword [esp + 0x518], 0x28
mov dword [esp + 0x51c], 0xc8
mov dword [esp + 0x520], 0x18
mov dword [esp + 0x524], 0xf0
mov dword [esp + 0x528], 0x24
mov dword [esp + 0x52c], 0xc4
mov dword [esp + 0x530], 0x14
mov dword [esp + 0x534], 0xfe
mov dword [esp + 0x538], 0xab
mov dword [esp + 0x53c], 0x6b
mov dword [esp + 0x540], 0x9b
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x544], 0x5b
mov dword [esp + 0x548], 0xa7
mov dword [esp + 0x54c], 0x67
mov dword [esp + 0x550], 0x97
mov dword [esp + 0x554], 0x57
mov dword [esp + 0x558], 0xa8
mov dword [esp + 0x55c], 0x68
mov dword [esp + 0x560], 0x98
mov dword [esp + 0x564], 0x58
mov dword [esp + 0x568], 0xa4
mov dword [esp + 0x56c], 0x64
mov dword [esp + 0x570], 0x94
mov dword [esp + 0x574], 0x54
jle 0x10072625
xor eax, eax
mov dword [esp + 0x2c], eax
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
xor edi, edi
cmp dword [esi + 0xc], edi
jle 0x1007247d
mov ebp, ebx
and ebp, 0xf
push ebx
push edi
mov ecx, esi
call fcn.10074510
movzx edx, al
mov eax, edi
and eax, 0xf
shl eax, 4
add eax, ebp
cmp edx, dword [esp + eax*4 + 0x178]
lea ecx, [esp + 0x578]
jle 0x1007246e
push 1
jmp 0x10072470
push 0
push ebx
push edi
call fcn.10074810
inc edi
cmp edi, dword [esi + 0xc]
jl 0x10072444
mov eax, dword [esp + 0x2c]
inc ebx
add eax, 0x64
cmp ebx, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jl 0x10072421
jmp 0x10072625
cmp dword [esi + 0x10], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ebx
jle 0x10072625
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cdq
idiv dword [esi + 0x10]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x144], eax
jne 0x10072625
cmp dword [esi + 0xc], 0
mov dword [esp + 0x24], 0
jle 0x1007260e
lea esp, [esp]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
push edi
push ebx
mov ecx, esi
call fcn.10074510
mov byte [esp + 0x18], al
lea ecx, [esp + 0x578]
cmp al, 0x80
jbe 0x10072516
push 1
push edi
push ebx
call fcn.10074810
movzx ebp, byte [esp + 0x18]
sub ebp, 0xff
jmp 0x10072524
push 0
push edi
push ebx
call fcn.10074810
movzx ebp, byte [esp + 0x18]
inc ebx
push edi
push ebx
mov ecx, esi
mov dword [esp + 0x3c], ebx
call fcn.10074400
movzx ecx, al
lea eax, [ebp*8]
sub eax, ebp
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x10072564
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0x18]
push ecx
push edi
push ebx
mov ecx, esi
call fcn.10074810
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x10072593
test edi, edi
je 0x10072589
cmp edi, 1
jne 0x1007259b
mov dword [esp + 0x28], edi
jmp 0x1007259b
mov dword [esp + 0x28], 5
jmp 0x1007259b
mov dword [esp + 0x28], 3
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
inc eax
lea ebx, [edi + edx]
push eax
push ebx
mov ecx, esi
call fcn.10074400
movzx ecx, al
mov eax, ebp
imul eax, dword [esp + 0x28]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add ecx, eax
mov eax, 0
sets al
mov byte [esp + 0x18], 0xff
dec eax
and eax, ecx
cmp eax, 0xff
jg 0x100725e0
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
inc eax
push eax
push ebx
mov ecx, esi
call fcn.10074810
inc edi
cmp edi, 2
jl 0x10072575
mov eax, dword [esp + 0x34]
cmp eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
jl 0x100724e0
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], 0x64
inc eax
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
jl 0x100724ac
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x58c]
call fcn.10074330
push 0
push 0xff
push 0xff
push 0xff
push 1
lea ecx, [esp + 0x58c]
call fcn.10074330
push 1
lea ecx, [esp + 0x57c]
push ecx
mov ecx, esi
call fcn.1006b300
lea ecx, [esp + 0x578]
mov dword [esp + 0x954], 0xffffffff
mov dword [esp + 0x578], 0x10161b4c
call fcn.1006b180
lea ecx, [esp + 0x578]
call fcn.1006b0d0
mov al, 1
mov ecx, dword [esp + 0x94c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x934]
xor ecx, esp
call fcn.1005392f
add esp, 0x944
ret 4