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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10143e9c
mov eax, dword fs:[0]
push eax
sub esp, 0x8a8
push ebx
push esi
push edi
mov eax, dword [0x1019c828]
xor eax, esp
push eax
lea eax, [esp + 0x8b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, 0x1032715c
call fcn.1004fbe0
mov ebx, eax
xor esi, esi
cmp ebx, esi
mov dword [esp + 0x5c], ebx
je 0x100516a9
cmp byte [0x1019371e], 0
jne 0x100528d6
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x8c0], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov edx, dword [0x1032715c]
cmp edx, esi
mov byte [esp + 0x8c0], 1
je 0x100516f7
xor eax, eax
cmp word [edx], si
je 0x100516f5
cmp eax, 0x400
jge 0x100516f1
add eax, 1
cmp word [edx + eax*2], si
jne 0x100516e1
cmp eax, esi
jne 0x100516f7
xor edx, edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
lea edi, [esp + 0x6c]
push edi
lea edi, [esp + 0x30]
push edi
mov edi, dword [ebp + 0xc]
push edx
mov edx, dword [eax + 0x15c]
push edi
call edx
cmp ebx, esi
jne 0x1005172a
push edi
mov ecx, 0x1032715c
call fcn.10051020
mov ebx, eax
mov dword [esp + 0x5c], ebx
jmp 0x1005173a
lea ecx, [ebx + 4]
call fcn.10042a40
lea ecx, [ebx + 0x14]
call fcn.10042a40
mov edi, dword [esp + 0x70]
cmp edi, esi
jne 0x10051746
xor ecx, ecx
jmp 0x1005174e
mov ecx, dword [esp + 0x74]
sub ecx, edi
sar ecx, 1
mov edx, dword [esp + 0x30]
cmp edx, esi
mov dword [esp + 0x40], ecx
jne 0x1005175e
xor eax, eax
jmp 0x10051767
mov eax, dword [esp + 0x34]
sub eax, edx
sar eax, 3
shr eax, 1
cmp ecx, esi
mov dword [esp + 0x28], eax
je 0x10052bde
cmp eax, esi
je 0x10052bde
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
cmp ecx, esi
mov byte [esp + 0x8c0], 2
mov dword [esp + 0x3c], esi
jle 0x10051b7e
lea ecx, [ecx]
push 0x24
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x100517e6
fld dword [0x101555d4]
mov dword [eax + 0x1c], 0xffffffff
fst dword [eax + 8]
mov byte [eax + 0x20], 0
fstp dword [eax + 0xc]
mov byte [eax + 0x18], 0
fld dword [0x101555d0]
mov dword [eax], 0
fst dword [eax + 0x10]
mov dword [eax + 4], 0
fstp dword [eax + 0x14]
mov edi, eax
jmp 0x100517e8
xor edi, edi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x24], edi
call fcn.10032260
fld dword [0x101555d4]
fst dword [edi + 8]
fstp dword [edi + 0xc]
fld dword [0x101555d0]
fst dword [edi + 0x10]
fstp dword [edi + 0x14]
mov dword [edi + 0x1c], 0xffffffff
mov byte [edi + 0x20], 0
mov byte [edi + 0x18], 0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10051837
mov edx, dword [esp + 0x74]
mov ecx, edx
sub ecx, eax
sar ecx, 1
cmp esi, ecx
jb 0x10051849
mov ebx, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
call ebx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
jmp 0x1005184f
mov ebx, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
test word [eax + esi*2], 0x8000
je 0x10051863
mov byte [edi + 0x18], 1
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1005186f
sub edx, eax
sar edx, 1
cmp esi, edx
jb 0x10051875
call ebx
mov eax, dword [esp + 0x70]
and word [eax + esi*2], 0x7fff
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x1005188f
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 1
cmp esi, eax
jb 0x10051895
call ebx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x40]
movsx ecx, word [ecx + esi*2]
add eax, 0xffffffff
cmp esi, eax
mov dword [edi], ecx
je 0x100518fa
mov eax, dword [esp + 0x70]
test eax, eax
je 0x100518bf
mov edx, dword [esp + 0x74]
mov ecx, edx
sub ecx, eax
sar ecx, 1
lea ebx, [esi + 1]
cmp ebx, ecx
jb 0x100518cd
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
test eax, eax
lea ebx, [eax + esi*2 + 2]
je 0x100518dd
sub edx, eax
sar edx, 1
cmp esi, edx
jb 0x100518e7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x70]
movsx edx, word [eax + esi*2]
movzx eax, word [ebx]
and eax, 0x7fff
sub eax, edx
mov dword [edi + 4], eax
jmp 0x10051921
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x1005190e
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 1
cmp esi, eax
jb 0x10051914
call ebx
mov ecx, dword [esp + 0x70]
movsx ecx, word [ecx + esi*2]
mov edx, dword [esp + 0x28]
sub edx, ecx
mov dword [edi + 4], edx
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add ecx, eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
lea ebx, [eax + eax]
je 0x10051946
mov edx, dword [esp + 0x34]
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x10051954
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
test ecx, ecx
lea eax, [ecx + ebx*8]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x20], eax
lea ebx, [ebx + ebx - 2]
je 0x10051972
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x10051980
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
fld qword [ecx + ebx*8]
fcomp qword [eax]
fnstsw ax
test ah, 0x44
jp 0x100519fe
test ecx, ecx
mov ebx, dword [edi]
lea ebx, [ebx + ebx + 1]
je 0x100519a5
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x100519b3
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ebx*8]
mov ebx, dword [esp + 0x58]
lea ebx, [ebx + ebx - 2]
add ebx, 1
test ecx, ecx
mov dword [esp + 0x20], eax
je 0x100519d4
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x100519e2
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
fld qword [ecx + ebx*8]
fcomp qword [eax]
fnstsw ax
test ah, 0x44
jp 0x100519fe
add dword [edi + 4], 0xffffffff
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, dword [edi]
mov ebx, dword [esp + 0x58]
cmp eax, ebx
jge 0x10051b69
sub ebx, eax
lea esi, [eax + eax]
mov dword [esp + 0x7c], ebx
test ecx, ecx
mov ebx, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
je 0x10051a2a
mov eax, edx
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10051a34
call ebx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
fld dword [edi + 8]
fcomp qword [ecx + esi*8]
fnstsw ax
test ah, 0x41
jne 0x10051a62
test ecx, ecx
je 0x10051a4e
sub edx, ecx
sar edx, 3
cmp esi, edx
jb 0x10051a54
call ebx
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8]
fstp dword [edi + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10051a71
mov eax, edx
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x10051a7b
call ebx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
fld dword [edi + 0x10]
fcomp qword [ecx + esi*8]
fnstsw ax
test ah, 5
jp 0x10051aa9
test ecx, ecx
je 0x10051a95
sub edx, ecx
sar edx, 3
cmp esi, edx
jb 0x10051a9b
call ebx
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8]
fstp dword [edi + 0x10]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10051abb
mov eax, edx
sub eax, ecx
sar eax, 3
lea ebx, [esi + 1]
cmp ebx, eax
jb 0x10051ac9
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
fld dword [edi + 0xc]
fcomp qword [ecx + esi*8 + 8]
fnstsw ax
test ah, 0x41
jne 0x10051b00
test ecx, ecx
je 0x10051ae7
sub edx, ecx
sar edx, 3
lea eax, [esi + 1]
cmp eax, edx
jb 0x10051af1
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8 + 8]
fstp dword [edi + 0xc]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10051b12
mov eax, edx
sub eax, ecx
sar eax, 3
lea ebx, [esi + 1]
cmp ebx, eax
jb 0x10051b20
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
fld dword [edi + 0x14]
fcomp qword [ecx + esi*8 + 8]
fnstsw ax
test ah, 5
jp 0x10051b57
test ecx, ecx
je 0x10051b3e
sub edx, ecx
sar edx, 3
lea eax, [esi + 1]
cmp eax, edx
jb 0x10051b48
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8 + 8]
fstp dword [edi + 0x14]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add esi, 2
sub dword [esp + 0x7c], 1
jne 0x10051a15
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x5c]
add esi, 1
cmp esi, dword [esp + 0x40]
mov dword [esp + 0x3c], esi
jl 0x100517a0
fld dword [0x101555d4]
mov edi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
fst dword [ebx + 0x24]
xor esi, esi
fld dword [0x101555d0]
fst dword [ebx + 0x2c]
fstp dword [ebx + 0x30]
fstp dword [ebx + 0x28]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x10051bae
xor eax, eax
jmp 0x10051bb5
mov eax, edx
sub eax, ecx
sar eax, 2
cmp esi, eax
jge 0x10051d01
test ecx, ecx
je 0x10051bcc
mov eax, edx
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x10051bd6
call edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + esi*4]
fld dword [eax + 8]
fld dword [ebx + 0x24]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10051c0c
test ecx, ecx
je 0x10051bf5
sub edx, ecx
sar edx, 2
cmp esi, edx
jb 0x10051bfb
call edi
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + esi*4]
fld dword [ecx + 8]
fstp dword [ebx + 0x24]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x10051c1b
mov eax, edx
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x10051c25
call edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + esi*4]
fld dword [eax + 0x10]
fld dword [ebx + 0x2c]
fcompp
fnstsw ax
test ah, 5
jp 0x10051c5b
test ecx, ecx
je 0x10051c44
sub edx, ecx
sar edx, 2
cmp esi, edx
jb 0x10051c4a
call edi
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + esi*4]
fld dword [ecx + 0x10]
fstp dword [ebx + 0x2c]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x10051c6a
mov eax, edx
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x10051c74
call edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + esi*4]
fld dword [eax + 0xc]
fld dword [ebx + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10051caa
test ecx, ecx
je 0x10051c93
sub edx, ecx
sar edx, 2
cmp esi, edx
jb 0x10051c99
call edi
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + esi*4]
fld dword [ecx + 0xc]
fstp dword [ebx + 0x28]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x10051cb9
mov eax, edx
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x10051cc3
call edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + esi*4]
fld dword [eax + 0x14]
fld dword [ebx + 0x30]
fcompp
fnstsw ax
test ah, 5
jp 0x10051cf9
test ecx, ecx
je 0x10051ce2
sub edx, ecx
sar edx, 2
cmp esi, edx
jb 0x10051ce8
call edi
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + esi*4]
fld dword [ecx + 0x14]
fstp dword [ebx + 0x30]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add esi, 1
jmp 0x10051ba6
mov eax, dword [esp + 0x28]
xor ecx, ecx
add eax, 1
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, 8
mul ecx
mov ecx, dword [esp + 0x20]
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1013fc7d
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
xor ecx, ecx
add eax, eax
add eax, eax
mov edx, 3
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, 4
mul ecx
mov ecx, dword [esp + 0x24]
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1013fc7d
mov dword [esp + 0x84], eax
xor esi, esi
xor edi, edi
xor eax, eax
add esp, 8
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x40], eax
mov byte [esp + 0x8c0], 3
mov dword [esp + 0x3c], eax
jle 0x10052757
mov ecx, dword [esp + 0x48]
xor ebx, ebx
cmp ecx, ebx
je 0x10051dc5
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x3c], eax
jb 0x10051dd7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + edx*4]
cmp byte [eax + 0x18], 0
je 0x10052790
cmp esi, edi
mov dword [esp + 0x60], edi
jbe 0x10051e02
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp esi, edi
mov ebx, esi
jbe 0x10051e1a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
cmp ebx, eax
je 0x10051e5a
sub edi, eax
sar edi, 2
test edi, edi
lea eax, [edi*4]
lea edx, [ebx + eax]
mov dword [esp + 0x20], edx
jle 0x10051e52
mov ecx, dword [esp + 0x60]
push eax
push ecx
push eax
push ebx
call dword [sym.imp.MSVCR80.dll_memmove_s]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
add esp, 0x10
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test ecx, ecx
je 0x10051e6d
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x3c], eax
jb 0x10051e7f
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
mov edx, dword [esp + 0x3c]
lea ebx, [ecx + edx*4]
je 0x10051eab
mov ecx, dword [esp + 0x1c]
mov eax, edi
sub eax, esi
sub ecx, esi
sar eax, 2
sar ecx, 2
cmp eax, ecx
jae 0x10051eab
mov eax, dword [ebx]
mov dword [edi], eax
add edi, 4
mov dword [esp + 0x18], edi
jmp 0x10051ecf
cmp esi, edi
jbe 0x10051eb5
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
push ebx
lea eax, [esp + 0x14]
push edi
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, eax
call fcn.10050a40
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
jge 0x10051fa2
mov eax, dword [esp + 0x48]
test eax, eax
je 0x10051efd
mov edx, dword [esp + 0x4c]
mov ecx, edx
sub ecx, eax
sar ecx, 2
cmp dword [esp + 0x3c], ecx
jb 0x10051f0f
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x18], 0
jne 0x10051fa2
test eax, eax
mov ebx, dword [esp + 0x3c]
je 0x10051f31
sub edx, eax
sar edx, 2
cmp ebx, edx
jb 0x10051f3f
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test edx, edx
lea esi, [eax + ebx*4]
je 0x10051f6b
mov ecx, dword [esp + 0x1c]
mov eax, edi
sub eax, edx
sub ecx, edx
sar eax, 2
sar ecx, 2
cmp eax, ecx
jae 0x10051f6b
mov edx, dword [esi]
mov dword [edi], edx
add edi, 4
mov dword [esp + 0x18], edi
jmp 0x10051f91
cmp edx, edi
jbe 0x10051f75
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
push esi
push edi
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x20]
call fcn.10050a40
mov edi, dword [esp + 0x18]
add ebx, 1
cmp ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
jl 0x10051ee4
mov esi, dword [esp + 0x14]
xor edx, edx
test esi, esi
mov dword [esp + 0x28], edx
jne 0x10051fb4
xor eax, eax
jmp 0x10051fbb
mov eax, edi
sub eax, esi
sar eax, 2
cmp edx, eax
jge 0x100522b1
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea esp, [esp]
test esi, esi
jne 0x10051fd8
xor eax, eax
jmp 0x10051fdf
mov eax, edi
sub eax, esi
sar eax, 2
cmp ecx, eax
jge 0x100522a9
cmp ecx, edx
je 0x10052297
test esi, esi
je 0x10052000
mov eax, edi
sub eax, esi
sar eax, 2
cmp dword [esp + 0x24], eax
jb 0x1005200e
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + ecx*4]
mov ebx, dword [edx]
mov eax, dword [esp + 0x30]
add ebx, ebx
test eax, eax
je 0x10052030
mov edx, dword [esp + 0x34]
mov ecx, edx
sub ecx, eax
sar ecx, 3
cmp ebx, ecx
jb 0x10052046
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
fld qword [eax + ebx*8]
fstp dword [esp + 0x64]
je 0x1005205e
mov ecx, edi
sub ecx, esi
sar ecx, 2
cmp dword [esp + 0x24], ecx
jb 0x10052074
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test eax, eax
mov ecx, dword [esp + 0x24]
mov ecx, dword [esi + ecx*4]
mov ebx, dword [ecx]
lea ebx, [ebx + ebx + 1]
je 0x1005208e
sub edx, eax
sar edx, 3
cmp ebx, edx
jb 0x100520a0
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
fld qword [eax + ebx*8]
fstp dword [esp + 0x68]
je 0x100520b6
sub edi, esi
sar edi, 2
cmp dword [esp + 0x28], edi
jb 0x100520c0
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + eax*4]
lea edx, [esp + 0x64]
push edx
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.1004fc90
add esp, 0xc
test al, al
je 0x1005228f
mov eax, dword [esp + 0x14]
test eax, eax
mov esi, dword [esp + 0x24]
mov ebx, 5
mov dword [esp + 0x60], ebx
je 0x10052106
mov edi, dword [esp + 0x18]
mov ecx, edi
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jb 0x10052114
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 4], ebx
jge 0x10052143
test eax, eax
je 0x1005212b
mov ecx, edi
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jb 0x10052139
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + esi*4]
mov ebx, dword [edx + 4]
mov dword [esp + 0x60], ebx
cmp ebx, 1
mov dword [esp + 0x58], 1
jle 0x10052268
test eax, eax
je 0x10052165
mov ecx, edi
sub ecx, eax
sar ecx, 2
cmp dword [esp + 0x24], ecx
jb 0x10052173
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + ecx*4]
mov esi, dword [edx]
add esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
add esi, esi
test ecx, ecx
je 0x10052199
mov ebx, dword [esp + 0x34]
mov edx, ebx
sub edx, ecx
sar edx, 3
cmp esi, edx
jb 0x100521af
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
fld qword [ecx + esi*8]
fstp dword [esp + 0x64]
je 0x100521c7
mov edx, edi
sub edx, eax
sar edx, 2
cmp dword [esp + 0x24], edx
jb 0x100521dd
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov edx, dword [eax + edx*4]
mov esi, dword [edx]
add esi, dword [esp + 0x58]
test ecx, ecx
lea esi, [esi + esi + 1]
je 0x100521fb
sub ebx, ecx
sar ebx, 3
cmp esi, ebx
jb 0x1005220d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
fld qword [ecx + esi*8]
fstp dword [esp + 0x68]
je 0x10052223
sub edi, eax
sar edi, 2
cmp dword [esp + 0x28], edi
jb 0x1005222d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edx*4]
lea ecx, [esp + 0x64]
push ecx
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.1004fc90
add esp, 0xc
test al, al
je 0x1005228f
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
jl 0x10052154
test eax, eax
je 0x10052277
sub edi, eax
sar edi, 2
cmp dword [esp + 0x24], edi
jb 0x10052281
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + edx*4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x1c], ecx
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add dword [esp + 0x24], 1
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
jmp 0x10051fd0
add edx, 1
jmp 0x10051fa8
xor ebx, ebx
test esi, esi
jne 0x100522bb
xor eax, eax
jmp 0x100522c2
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jge 0x10052399
test esi, esi
je 0x100522d9
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x100522e7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
lea edx, [esi + ebx*4]
mov dword [esp + 0x20], edx
je 0x100522fd
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x1005230b
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
lea eax, [esi + ebx*4]
mov dword [esp + 0x80], eax
je 0x10052324
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x10052332
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
lea ecx, [esi + ebx*4]
mov dword [esp + 0x60], ecx
je 0x10052346
sub edi, esi
sar edi, 2
cmp ebx, edi
jb 0x10052350
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
cmp dword [eax + 0x1c], 0
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
mov edx, dword [esp + 0x60]
setge cl
lea esi, [esi + ebx*4]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [edx]
push ecx
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.10051150
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add esp, 0x10
add ebx, 1
jmp 0x100522b3
test esi, esi
je 0x10052745
mov eax, edi
sub eax, esi
sar eax, 2
test eax, eax
mov dword [esp + 0x60], eax
jle 0x10052745
xor ebx, ebx
lea ecx, [esp + 0x10]
mov dword [esp + 0x58], ebx
call fcn.100397a0
test eax, eax
jle 0x10052745
jmp 0x100523d0
test esi, esi
je 0x100523df
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x100523ed
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + ebx*4]
cmp byte [edx + 0x20], 0
jne 0x1005241c
test esi, esi
je 0x10052405
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x10052413
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + ebx*4]
cmp dword [eax + 0x1c], 0xffffffff
je 0x10052435
add ebx, 1
lea ecx, [esp + 0x10]
mov dword [esp + 0x58], ebx
call fcn.100397a0
cmp ebx, eax
jl 0x100523d0
jmp 0x10052745
cmp ebx, 0xffffffff
je 0x10052745
xor ebx, ebx
lea ecx, [esp + 0xb4]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x80], ecx
test esi, esi
jne 0x1005246d
xor eax, eax
jmp 0x10052474
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jge 0x1005262e
cmp ebx, dword [esp + 0x58]
je 0x100524b3
test esi, esi
je 0x10052491
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x1005249f
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + ebx*4]
mov eax, dword [esp + 0x58]
cmp dword [edx + 0x1c], eax
jne 0x10052620
mov ebx, dword [esp + 0x28]
mov eax, 1
add dword [esp + 0x24], eax
sub dword [esp + 0x60], eax
test esi, esi
je 0x100524cd
sub edi, esi
sar edi, 2
cmp ebx, edi
jb 0x100524d7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + ebx*4]
mov byte [ecx + 0x20], 1
mov esi, dword [esp + 0x14]
test esi, esi
je 0x100524f5
mov edi, dword [esp + 0x18]
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x10052503
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + ebx*4]
mov eax, dword [esp + 0x80]
mov ecx, dword [edx + 4]
mov dword [eax], ecx
add eax, 4
test esi, esi
mov dword [esp + 0x80], eax
je 0x1005252b
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x10052539
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test esi, esi
lea edx, [esi + ebx*4]
mov dword [esp + 0x54], edx
je 0x1005254f
mov eax, edi
sub eax, esi
sar eax, 2
cmp ebx, eax
jb 0x1005255d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + ecx*4]
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
mov ebx, dword [eax + 4]
add ebx, dword [edx]
test esi, esi
je 0x1005257e
mov eax, edi
sub eax, esi
sar eax, 2
cmp ecx, eax
jb 0x10052590
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + ecx*4]
mov eax, dword [eax]
cmp eax, ebx
jge 0x10052620
mov ecx, dword [esp + 0x20]
mov esi, ecx
shl esi, 4
add esi, dword [esp + 0x88]
sub ebx, eax
add dword [esp + 0x84], ebx
add ecx, ebx
lea edi, [eax + eax]
mov dword [esp + 0x20], ecx
nop
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x100525d5
mov eax, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x100525df
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
fld qword [ecx + edi*8]
fstp qword [esi]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x100525fc
mov ecx, dword [esp + 0x34]
sub ecx, eax
sar ecx, 3
lea edx, [edi + 1]
cmp edx, ecx
jb 0x10052606
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x30]
fld qword [eax + edi*8 + 8]
add esi, 0x10
fstp qword [esi - 8]
add edi, 2
sub ebx, 1
jne 0x100525c0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add dword [esp + 0x28], 1
mov ebx, dword [esp + 0x28]
jmp 0x10052465
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x24]
push eax
push esi
lea ecx, [esp + 0xbc]
push ecx
push edx
call fcn.1004f7a0
add esp, 0x10
test eax, eax
mov dword [esp + 0x54], eax
jle 0x10052732
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 8]
add ebx, 4
test eax, eax
je 0x1005267f
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [eax - 1]
mov eax, dword [esp + 0x84]
add eax, 1
cmp eax, 1
jle 0x100526dc
fldz
add esi, 0x10
add eax, 0xffffffff
fstp dword [esp + 0xa0]
mov dword [esp + 0x20], eax
jmp 0x100526b0
fld qword [esi]
lea eax, [esp + 0x98]
fstp dword [esp + 0x98]
push eax
fld qword [esi + 8]
mov ecx, ebx
fstp dword [esp + 0xa0]
call fcn.10036a50
add esi, 0x10
sub dword [esp + 0x20], 1
jne 0x100526b0
mov ebx, dword [esp + 0x54]
test ebx, ebx
jle 0x10052732
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x7c]
add ecx, 0x14
mov dword [esp + 0x54], ecx
add esi, 4
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [esi - 4]
add eax, edi
add ecx, edi
mov dword [esp + 0x94], eax
lea eax, [esp + 0x8c]
add edx, edi
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x54]
push eax
mov dword [esp + 0x90], edx
call fcn.10036a50
add esi, 0xc
sub ebx, 1
jne 0x100526f6
cmp dword [esp + 0x60], 0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jg 0x100523b4
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x3c], ecx
jl 0x10051dac
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x88]
xor edi, edi
cmp eax, edi
je 0x1005276d
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x7c]
cmp eax, edi
je 0x1005277e
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
xor esi, esi
cmp eax, edi
jne 0x100527f5
xor ecx, ecx
jmp 0x100527fc
cmp esi, ebx
je 0x100527a1
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
je 0x100527ba
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x70]
cmp eax, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
je 0x100527d7
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
je 0x10052c08
push eax
jmp 0x10052c00
mov ecx, edx
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jge 0x10052855
cmp eax, edi
je 0x1005280f
mov ecx, edx
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jb 0x1005281d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
cmp dword [eax + esi*4], edi
je 0x1005284d
cmp eax, edi
je 0x1005282f
sub edx, eax
sar edx, 2
cmp esi, edx
jb 0x10052839
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x48]
mov edx, dword [eax + esi*4]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
add esp, 4
add esi, 1
jmp 0x10052788
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x1005286a
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x4c]
add esp, 4
cmp eax, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
je 0x10052883
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x70]
cmp eax, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
je 0x100528a0
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x8c0], 0xffffffff
je 0x100528c8
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
xor esi, esi
mov eax, dword [ebx + 0x18]
cmp eax, esi
je 0x10052bc6
mov ecx, dword [ebx + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10052bc6
fld dword [ebx + 0x24]
mov eax, dword [ebp + 0x18]
fstp dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
fld dword [ebx + 0x28]
mov dword [eax], ecx
fstp dword [esp + 0x68]
mov edx, dword [esp + 0x68]
mov dword [eax + 4], edx
fld dword [ebx + 0x2c]
mov eax, dword [ebp + 0x1c]
fstp dword [esp + 0x64]
fld dword [ebx + 0x30]
mov ecx, dword [esp + 0x64]
fstp dword [esp + 0x68]
mov edx, dword [esp + 0x68]
xor esi, esi
mov dword [eax], ecx
mov dword [eax + 4], edx
xor edi, edi
lea esp, [esp]
mov eax, dword [ebx + 8]
test eax, eax
je 0x1005295c
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x100529d6
mov eax, dword [ebx + 8]
test eax, eax
je 0x10052980
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x10052986
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 8]
test eax, eax
fld dword [edi + eax]
fstp dword [esp + 0x64]
je 0x100529ad
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x100529b3
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx + 8]
fld dword [edi + ecx + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x64]
fstp dword [esp + 0x68]
push edx
call fcn.100515c0
add esi, 1
add edi, 0xc
jmp 0x10052940
mov esi, dword [ebp + 0x14]
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x5c], edi
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x100529ff
mov ecx, dword [ebx + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x10052bc6
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10052a27
mov ecx, dword [ebx + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10052a2d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [ebx + 0x18]
mov eax, dword [esi + 4]
add edi, dword [esp + 0x5c]
test eax, eax
jne 0x10052a3f
xor edx, edx
jmp 0x10052a47
mov edx, dword [esi + 8]
sub edx, eax
sar edx, 2
test eax, eax
je 0x10052a66
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x10052a66
mov eax, dword [esi + 8]
mov ecx, dword [edi]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 8], eax
jmp 0x10052a8d
mov ecx, dword [esi + 8]
cmp eax, ecx
mov dword [esp + 0x54], ecx
jbe 0x10052a77
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x54]
push edi
push edx
push esi
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
call fcn.10050a40
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10052aaf
mov ecx, dword [ebx + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x40], eax
jb 0x10052ab5
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx + 0x18]
mov edx, dword [esp + 0x5c]
mov eax, dword [esi + 4]
test eax, eax
lea edi, [edx + ecx + 4]
mov dword [esp + 0x54], edi
jne 0x10052acf
xor edx, edx
jmp 0x10052ad7
mov edx, dword [esi + 8]
sub edx, eax
sar edx, 2
test eax, eax
je 0x10052af6
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x10052af6
mov eax, dword [esi + 8]
mov ecx, dword [edi]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 8], eax
jmp 0x10052b19
mov edi, dword [esi + 8]
cmp eax, edi
jbe 0x10052b03
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x54]
push edx
push edi
push esi
lea eax, [esp + 0xb8]
push eax
mov ecx, esi
call fcn.10050a40
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10052b3b
mov ecx, dword [ebx + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x40], eax
jb 0x10052b41
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx + 0x18]
mov edx, dword [esp + 0x5c]
mov eax, dword [esi + 4]
test eax, eax
lea edi, [edx + ecx + 8]
mov dword [esp + 0x54], edi
jne 0x10052b5b
xor edx, edx
jmp 0x10052b63
mov edx, dword [esi + 8]
sub edx, eax
sar edx, 2
test eax, eax
je 0x10052b93
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x10052b93
mov eax, dword [esi + 8]
mov ecx, dword [edi]
add dword [esp + 0x40], 1
mov edi, dword [esp + 0x40]
mov dword [eax], ecx
add eax, 4
add dword [esp + 0x5c], 0xc
mov dword [esi + 8], eax
jmp 0x100529e3
mov edi, dword [esi + 8]
cmp eax, edi
jbe 0x10052ba0
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x54]
push edx
push edi
push esi
lea eax, [esp + 0x70]
push eax
mov ecx, esi
call fcn.10050a40
add dword [esp + 0x40], 1
add dword [esp + 0x5c], 0xc
mov edi, dword [esp + 0x40]
jmp 0x100529e3
mov al, 1
mov ecx, dword [esp + 0x8b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, esi
je 0x10052bef
push edi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov edx, dword [esp + 0x34]
add esp, 4
cmp edx, esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
je 0x10052c08
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor al, al
mov ecx, dword [esp + 0x8b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret