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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x54]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x2c], eax
shl eax, 4
push eax
push 0
push ecx
mov dword [ebp - 0x3c], ecx
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0x10]
add esp, 0xc
test eax, eax
jbe 0x4f6b1d
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
jmp 0x4f6b1f
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 0
test eax, eax
jbe 0x4f6dd9
cmp dword [ebp - 0xc], 0
je 0x4f6da9
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x3c]
and eax, 0xfff00000
je 0x4f6da9
mov ecx, dword [ebp + 8]
test byte [ecx + 0xb8], 0x20
jne 0x4f6c3b
cmp eax, 0x6a000000
je 0x4f6b82
mov eax, edx
call fcn.0050b8f0
test al, al
je 0x4f6c3b
mov edx, dword [ebp + 8]
test byte [edx + 0xb2], 0x40
jne 0x4f6c3b
mov eax, dword [ebp - 0xc]
xor edi, edi
cmp dword [eax + 8], edi
jbe 0x4f6c3b
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 0x1c], edx
jmp 0x4f6ba0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
mov ebx, dword [ecx + edi*4]
mov ecx, dword [ebx + 0x10]
cmp ecx, dword [ebp - 0x1c]
je 0x4f6bd3
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x6c], eax
mov eax, edx
and eax, 0x1000
xor esi, esi
or eax, esi
je 0x4f6c2e
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f6c2e
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ebx + 0x28]
mov eax, edx
mov dword [ebp - 0x6c], ecx
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x4f6bfe
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f6bfe
mov edx, dword [ebp + 0xc]
add esi, dword [edx + 0x4c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x30]
mov edx, dword [edx + 0x2c]
lea eax, [esi*4]
mov ecx, dword [eax + ecx]
mov esi, dword [ebx + 0x2c]
add esi, eax
mov eax, dword [edx + esi*4]
mov edx, dword [ebp - 0xc]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax*4]
mov ecx, dword [edx + 0x10]
cmp dword [eax], ecx
jae 0x4f6c2e
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
inc edi
cmp edi, dword [eax + 8]
jb 0x4f6ba0
mov ecx, dword [ebp - 0xc]
cmp dword [ecx], 0
mov dword [ebp - 0x30], 0
jbe 0x4f6da9
mov eax, dword [ebp - 0x30]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x60], eax
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x44], eax
jmp 0x4f6c70
mov ecx, dword [ebp + eax*4 - 0x60]
cmp ecx, 0xffffffff
je 0x4f6d87
lea ecx, [ecx]
mov eax, dword [ecx + 0x44]
cmp eax, 0xffffffff
je 0x4f6c8f
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x4f6c80
mov edx, dword [ecx + 0x10]
mov edi, dword [ebp + 0xc]
cmp edx, dword [edi]
je 0x4f6cc3
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 8]
mov dword [ebp - 0x6c], eax
mov eax, esi
and eax, 0x1000
xor ebx, ebx
or eax, ebx
je 0x4f6d87
and esi, 0x4200000
xor eax, eax
or esi, eax
jne 0x4f6d87
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov ebx, dword [ecx + 0x28]
mov eax, esi
mov dword [ebp - 0x6c], edx
and eax, 0x1000
xor edx, edx
or eax, edx
je 0x4f6ceb
and esi, 0x4200000
xor eax, eax
or esi, eax
jne 0x4f6ceb
add ebx, dword [edi + 0x4c]
mov edx, dword [edi + 0x30]
lea eax, [ebx*4]
mov edx, dword [eax + edx]
mov dword [ebp - 0x14], edx
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x30]
add edx, eax
mov eax, dword [edi + 0x2c]
mov edi, dword [eax + edx*4]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [edx]
mov edx, dword [eax + 0x30]
cmp ecx, 0xffffffff
je 0x4f6d39
lea esp, [esp]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x8000
xor esi, esi
or eax, esi
jne 0x4f6d39
mov ecx, dword [ecx + 0x30]
cmp ecx, 0xffffffff
jne 0x4f6d20
cmp edx, 0xffffffff
je 0x4f6d66
mov edi, edi
cmp edx, ecx
je 0x4f6d66
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x8000
xor esi, esi
or eax, esi
je 0x4f6d5e
mov eax, dword [edx + 0x78]
cmp ebx, eax
jae 0x4f6d5e
mov ebx, eax
mov edx, dword [edx + 0x30]
cmp edx, 0xffffffff
jne 0x4f6d40
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + eax*4]
lea edx, [ecx*4]
cmp eax, edx
jae 0x4f6d87
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + eax*4], ebx
jae 0x4f6d87
mov edx, ecx
mov dword [edx + eax*4], ebx
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp eax, 3
jb 0x4f6c70
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, dword [ecx]
jb 0x4f6c51
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, eax
jb 0x4f6dc8
mov ecx, eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], ecx
jmp 0x4f6dd1
mov edx, dword [edx + 0x14]
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0xc], edx
cmp ecx, eax
jb 0x4f6b31
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
mov eax, dword [esi + 0x54]
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
mov dword [ebp - 0x4c], ebx
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x54]
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x54]
add eax, eax
xor ecx, ecx
add eax, eax
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x54]
add eax, eax
xor ecx, ecx
add eax, eax
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [ebp - 0x44], edi
test ebx, ebx
je 0x4f7955
cmp dword [ebp - 0x48], 0
je 0x4f7955
test edi, edi
je 0x4f7955
mov ecx, dword [ebp - 0x48]
mov eax, esi
mov ebx, dword [eax + 0x54]
mov esi, ebx
shl esi, 4
push esi
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
push 0
push edi
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x4c]
add esp, 0xc
lea edx, [ebx*4]
push edx
push 0xff
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push esi
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
test ebx, ebx
jbe 0x4f6f15
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0x54]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov dword [edx + ecx], 0xffffffff
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, esi
jb 0x4f6f04
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [eax + 0x5c], edx
mov eax, dword [ecx + 0x10]
cmp eax, edx
jbe 0x4f6f2e
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx]
jmp 0x4f6f30
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
cmp eax, edx
jbe 0x4f787d
mov edx, dword [ebp - 0xc]
test dword [edx + 0x3c], 0xfff00000
je 0x4f784d
mov eax, edx
cmp dword [eax + 8], 0
je 0x4f784d
mov edi, dword [ebp + 0xc]
mov ecx, edx
mov edx, dword [ecx + 0xc]
mov ebx, dword [edx]
mov ecx, dword [ebx + 0x10]
cmp ecx, dword [edi]
je 0x4f6f95
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x6c], eax
mov eax, edx
and eax, 0x1000
xor esi, esi
or eax, esi
je 0x4f784d
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f784d
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ebx + 0x28]
mov eax, edx
mov dword [ebp - 0x6c], ecx
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x4f6fbd
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f6fbd
add esi, dword [edi + 0x4c]
mov edx, dword [edi + 0x30]
mov esi, dword [edx + esi*4]
mov ecx, dword [ebp - 0x4c]
lea eax, [esi*4]
cmp dword [eax + ecx], 0xffffffff
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], eax
jne 0x4f784d
mov edx, dword [ebp - 0xc]
cmp dword [edx + 8], 0
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x40], 0
jbe 0x4f70ea
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x28]
shl esi, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], esi
jmp 0x4f7013
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x34], 0
mov dword [ebp - 4], esi
lea ecx, [ecx]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ebx, dword [edx + eax]
cmp ebx, 0xffffffff
je 0x4f70c0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x1c], edx
jmp 0x4f7040
mov eax, dword [ebp - 0x1c]
xor esi, esi
cmp dword [eax + ebx*4], esi
jbe 0x4f70ae
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
lea edi, [edx + ebx*4]
mov eax, dword [edi]
mov edx, dword [eax + esi*4]
mov ecx, dword [edx + 0xc]
and ecx, 0x400
xor eax, eax
or eax, ecx
je 0x4f706b
mov byte [ebp - 0xd], 1
mov edx, dword [edx + 0x68]
cmp edx, 0xffffffff
je 0x4f794e
mov ecx, dword [ebp + 8]
test byte [ecx + 0xb8], 0x20
jne 0x4f70a2
mov eax, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + edx*4]
call fcn.0050b8f0
test al, al
je 0x4f70a2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
cmp dword [eax + ecx], edx
jae 0x4f70a2
mov dword [eax + ecx], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
inc esi
cmp esi, dword [eax + ebx*4]
jb 0x4f7053
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
mov ebx, dword [edx + ebx*4]
cmp ebx, 0xffffffff
jne 0x4f7040
mov eax, dword [ebp - 0x34]
add dword [ebp - 4], 4
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 4
jb 0x4f7020
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, dword [ecx + 8]
jb 0x4f7010
mov esi, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
shl esi, 4
mov dword [ebp - 0x28], esi
lea ebx, [esi + eax]
mov esi, dword [ebx]
test esi, esi
jne 0x4f7142
mov ecx, dword [ebp + 8]
test byte [ecx + 0xb8], 0x20
jne 0x4f7157
mov eax, dword [ebp - 0xc]
call fcn.0050b8f0
test al, al
je 0x4f7157
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x94], esi
mov dword [ebp + eax*4 - 0x84], edx
inc eax
mov dword [ebp - 4], eax
inc edx
add ebx, 4
cmp edx, 4
jb 0x4f7124
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
movzx eax, byte [edx + 0xb5]
shr eax, 6
not eax
and eax, 1
mov dword [ebp - 0x34], eax
cmp eax, 2
jae 0x4f76d7
lea esp, [esp]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5c], 0
mov dword [ebp - 0x18], 0
jbe 0x4f760f
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx + 0x3c]
and edi, 0xfff00000
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x74], edi
cmp edi, 0x70700000
ja 0x4f71ee
je 0x4f7220
cmp edi, 0x70200000
ja 0x4f71de
je 0x4f7220
cmp edi, 0x50300000
je 0x4f7220
cmp edi, 0x70100000
jmp 0x4f720e
cmp edi, 0x70500000
je 0x4f7220
cmp edi, 0x70600000
jmp 0x4f720e
cmp edi, 0x70d00000
ja 0x4f7208
je 0x4f7220
cmp edi, 0x70b00000
je 0x4f7220
cmp edi, 0x70c00000
jmp 0x4f720e
cmp edi, 0x71000000
je 0x4f7220
mov edx, dword [ebp + 8]
test byte [edx + 0xb0], 4
je 0x4f72d2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x14], eax
test eax, eax
jbe 0x4f72c6
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
mov ebx, dword [edx]
mov ecx, dword [ebx + 0x10]
cmp ecx, dword [ebp - 0x1c]
je 0x4f7277
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x6c], eax
mov eax, edx
and eax, 0x1000
xor esi, esi
or eax, esi
je 0x4f72b6
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f72b6
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ebx + 0x28]
mov eax, edx
mov dword [ebp - 0x6c], ecx
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x4f72a2
and edx, 0x4200000
xor eax, eax
or edx, eax
jne 0x4f72a2
mov edx, dword [ebp + 0xc]
add esi, dword [edx + 0x4c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + esi*4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
cmp dword [eax + esi*4], edx
je 0x4f72c6
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x20], 4
inc eax
mov dword [ebp - 0x40], eax
cmp eax, dword [ebp - 0x14]
jb 0x4f7248
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x40], ecx
jne 0x4f75fc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x50]
mov ebx, dword [edx + esi*4]
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x14], ebx
cmp ebx, 0xffffffff
je 0x4f732f
xor esi, esi
lea esp, [esp]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp + 0xc]
lea ecx, [esi + eax]
push ebx
call fcn.004f4ef0
test al, al
jne 0x4f730b
inc esi
cmp esi, 4
jb 0x4f72f0
jmp 0x4f730f
mov byte [ebp - 0x21], 1
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ecx + ebx*4]
cmp ebx, dword [ebp - 0x14]
je 0x4f731f
cmp ebx, 0xffffffff
jne 0x4f72e7
cmp byte [ebp - 0x21], 0
mov esi, dword [ebp - 0x18]
jne 0x4f75ff
mov edi, dword [ebp - 0x74]
cmp dword [ebp - 0x34], 0
mov ebx, dword [ebp - 0x38]
jne 0x4f7378
cmp dword [ebp - 4], 1
jne 0x4f7378
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 0x10]
mov edx, esi
shl edx, 4
cmp dword [edx + ebx + 0xc], ecx
lea eax, [edx + ebx]
ja 0x4f7364
cmp dword [eax + 8], ecx
jbe 0x4f7364
cmp dword [eax + 4], ecx
jbe 0x4f7364
cmp dword [eax], ecx
ja 0x4f766e
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x5c]
dec edx
cmp esi, edx
jae 0x4f761b
jmp 0x4f75ff
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x1c], eax
lea eax, [esi*4]
mov esi, dword [ebp - 0x1c]
xor ecx, ecx
cmp dword [ebx + eax*4], esi
ja 0x4f7397
mov ecx, 1
cmp dword [ebx + eax*4 + 4], esi
ja 0x4f739e
inc ecx
cmp dword [ebx + eax*4 + 8], esi
ja 0x4f73a5
inc ecx
cmp dword [ebx + eax*4 + 0xc], esi
ja 0x4f73ac
inc ecx
mov esi, dword [ebp - 4]
cmp ecx, esi
jb 0x4f75fc
cmp ecx, 4
je 0x4f7421
cmp esi, 1
je 0x4f7421
mov ecx, dword [ebp + 8]
test byte [ecx + 0xac], 2
je 0x4f7421
cmp byte [ebp - 0xd], 0
jne 0x4f7421
mov eax, dword [edx + 0x3c]
and eax, 0xf0000000
cmp eax, 0x10000000
jb 0x4f73ed
cmp eax, 0x40000000
jbe 0x4f749c
cmp edi, 0x70c00000
ja 0x4f747a
je 0x4f749c
cmp edi, 0x70300000
ja 0x4f746a
je 0x4f749c
cmp edi, 0x70000000
je 0x4f749c
cmp edi, 0x70100000
je 0x4f749c
xor ecx, ecx
test esi, esi
mov esi, dword [ebp - 0x18]
jbe 0x4f7667
mov edx, dword [ebp - 0x54]
cmp dword [ebp - 4], 1
je 0x4f7443
mov eax, dword [ebp + 8]
test byte [eax + 0xac], 2
jne 0x4f744d
cmp byte [ebp - 0xd], 0
je 0x4f7638
mov eax, dword [ebp + ecx*4 - 0x84]
mov edi, dword [ebp - 0x1c]
lea edx, [eax + esi*4]
cmp dword [ebx + edx*4], edi
ja 0x4f7667
mov edx, eax
jmp 0x4f7653
cmp edi, 0x70400000
je 0x4f749c
cmp edi, 0x70b00000
jmp 0x4f741f
cmp edi, 0x71000000
ja 0x4f7494
je 0x4f749c
cmp edi, 0x70d00000
je 0x4f749c
cmp edi, 0x70f00000
jmp 0x4f741f
cmp edi, 0x71200000
jne 0x4f7421
xor esi, esi
mov dword [ebp - 0x1c], esi
jmp 0x4f74a9
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
mov ebx, dword [ebp - 0x38]
push edi
push esi
call eax
test al, al
je 0x4f75e6
xor eax, eax
cmp dword [ebp - 4], eax
jbe 0x4f74f9
mov edx, dword [edi + 0x10]
add esi, esi
add esi, esi
mov ecx, dword [ebp + eax*4 - 0x84]
mov edi, dword [ebp - 0x18]
add edi, edi
add ecx, esi
mov ecx, dword [ecx*4 + 0x417e38]
add edi, edi
add edi, ecx
cmp dword [ebx + edi*4], edx
ja 0x4f74f6
mov dword [ebp + eax*4 - 0x64], ecx
inc eax
cmp eax, dword [ebp - 4]
jb 0x4f74ce
mov edi, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jne 0x4f75e6
mov esi, dword [edi + 0x3c]
mov eax, dword [edi]
and esi, 0xfffff
xor edx, edx
div esi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x14], eax
test eax, eax
jbe 0x4f75de
mov ecx, 1
cmp esi, ecx
jbe 0x4f75ce
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 4]
and edx, 0xfffff
imul edx, dword [ebp - 0x20]
lea eax, [eax + edx*4]
mov edx, dword [eax]
mov edx, dword [edx + 0x2c]
add eax, 4
mov edi, edi
mov edi, dword [eax]
cmp dword [edi + 0x2c], edx
jne 0x4f7561
inc ecx
add eax, 4
cmp ecx, esi
jb 0x4f7550
jmp 0x4f75ce
cmp ecx, esi
jae 0x4f75ce
mov edi, dword [ebp + 8]
xor ebx, ebx
mov edx, dword [edi]
mov eax, dword [edx + 0x2c]
push 0
push ebx
mov ecx, edi
call eax
test al, al
je 0x4f75c3
xor eax, eax
test esi, esi
jbe 0x4f75bf
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x3c]
mov ecx, dword [ecx + 4]
and edx, 0xfffff
imul edx, dword [ebp - 0x20]
lea edi, [ebx*4]
lea ecx, [ecx + edx*4]
lea ecx, [ecx]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
add edx, edi
mov edx, dword [edx*4 + 0x417e38]
cmp edx, dword [ebp + eax*4 - 0x64]
jne 0x4f75bc
inc eax
add ecx, 4
cmp eax, esi
jb 0x4f75a0
mov edi, dword [ebp + 8]
cmp eax, esi
je 0x4f75c9
inc ebx
cmp ebx, 0x18
jb 0x4f756a
cmp ebx, 0x18
je 0x4f75de
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x14]
jb 0x4f7523
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x20], eax
je 0x4f75f6
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x18
jb 0x4f74a3
cmp dword [ebp - 0x1c], 0x18
jne 0x4f760f
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, dword [ecx + 0x5c]
jb 0x4f71a4
cmp dword [ebp - 0x34], 0
jne 0x4f7675
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x18]
mov edx, dword [eax + 0x48]
shr edx, 1
cmp esi, edx
ja 0x4f762c
mov eax, dword [eax + 0x5c]
dec eax
cmp esi, eax
jb 0x4f7675
mov dword [ebp - 0x34], 1
jmp 0x4f7190
cmp edx, 4
jae 0x4f7656
lea eax, [edx + esi*4]
lea eax, [ebx + eax*4]
mov edi, dword [ebp - 0x1c]
cmp dword [eax], edi
jbe 0x4f7653
inc edx
add eax, 4
cmp edx, 4
jb 0x4f7643
cmp edx, 4
je 0x4f7667
mov dword [ebp + ecx*4 - 0x64], edx
inc ecx
inc edx
cmp ecx, dword [ebp - 4]
jb 0x4f7431
cmp ecx, dword [ebp - 4]
je 0x4f760f
jmp 0x4f75ff
mov dword [ebp - 0x64], 3
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0x5c]
cmp dword [ebp - 0x18], esi
jne 0x4f76d7
mov edi, dword [ebp + 8]
test byte [edi + 0xb5], 0x40
mov ecx, dword [ebp - 4]
je 0x4f769d
cmp ecx, 1
jne 0x4f769d
mov dword [ebp - 0x64], 3
jmp 0x4f76c8
xor eax, eax
test ecx, ecx
jbe 0x4f76c8
cmp byte [ebp - 0xd], 0
jne 0x4f76b8
test byte [edi + 0xac], 2
jne 0x4f76b8
mov dword [ebp + eax*4 - 0x64], eax
jmp 0x4f76c3
mov ebx, dword [ebp + eax*4 - 0x84]
mov dword [ebp + eax*4 - 0x64], ebx
inc eax
cmp eax, ecx
jb 0x4f76a3
lea eax, [esi + 1]
mov dword [edx + 0x5c], eax
cmp eax, dword [edx + 0x54]
ja 0x4f794e
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x30]
mov dword [eax + ecx], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x28], eax
jmp 0x4f7703
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
cmp edi, 0xffffffff
je 0x4f7770
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x50]
mov esi, dword [ecx + edx*4]
mov eax, edi
mov ecx, esi
shr eax, 2
cmp ecx, 0xffffffff
je 0x4f7735
cmp ecx, eax
je 0x4f7765
mov ecx, dword [ebx + ecx*4]
cmp ecx, esi
je 0x4f7735
cmp ecx, 0xffffffff
jne 0x4f7725
cmp esi, 0xffffffff
jne 0x4f7742
mov ecx, dword [ebp - 0x50]
mov dword [ecx + edx*4], eax
jmp 0x4f7765
mov ecx, dword [ebx + eax*4]
mov edx, eax
cmp ecx, eax
je 0x4f7759
jmp 0x4f7750
mov edx, ecx
mov ecx, dword [ebx + edx*4]
cmp ecx, eax
jne 0x4f7750
mov ecx, dword [ebx + esi*4]
mov dword [ebx + edx*4], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebx + esi*4], eax
mov eax, dword [ebp - 0x54]
mov edi, dword [eax + edi*4]
cmp edi, 0xffffffff
jne 0x4f7713
add dword [ebp - 0x28], 4
sub dword [ebp - 0x14], 1
jne 0x4f7700
xor eax, eax
cmp dword [ebp - 4], eax
jbe 0x4f77ae
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp + eax*4 - 0x64]
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp + eax*4 - 0x94]
lea edi, [ecx + edi*4]
mov dword [edx + edi*4], ebx
mov edi, dword [ebp + eax*4 - 0x84]
add edi, dword [ebp - 0x2c]
inc eax
mov dword [esi + edi*4], ecx
cmp eax, dword [ebp - 4]
jb 0x4f7787
mov edx, dword [ebp - 4]
mov ebx, 0xf
xor eax, eax
mov edi, ebx
test edx, edx
jbe 0x4f77ea
mov edi, edi
mov ecx, dword [ebp + eax*4 - 0x84]
mov esi, 1
shl esi, cl
mov ecx, dword [ebp + eax*4 - 0x64]
inc eax
not esi
and ebx, esi
mov esi, 1
shl esi, cl
not esi
and edi, esi
cmp eax, edx
jb 0x4f77c0
test ebx, ebx
je 0x4f784d
or ecx, 0xffffffff
or esi, 0xffffffff
xor eax, eax
lea edx, [eax + 1]
cmp ecx, 0xffffffff
jne 0x4f7800
test ebx, edx
je 0x4f7800
mov ecx, eax
cmp esi, 0xffffffff
jne 0x4f780b
test edi, edx
je 0x4f780b
mov esi, eax
inc eax
rol edx, 1
cmp eax, 4
jb 0x4f77f5
cmp ecx, 0xffffffff
je 0x4f794e
cmp esi, 0xffffffff
je 0x4f794e
mov edx, dword [ebp - 0x2c]
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x48]
mov dword [edx + eax*4], esi
mov eax, 1
shl eax, cl
mov edx, 1
mov ecx, esi
shl edx, cl
not eax
and ebx, eax
not edx
and edi, edx
test ebx, ebx
jne 0x4f77ea
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
inc edx
mov dword [ebp - 8], edx
cmp edx, eax
jb 0x4f786c
mov edx, eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], edx
jmp 0x4f7875
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xc], ecx
cmp edx, eax
jb 0x4f6f3e
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x54]
mov dword [ebp - 0x2c], edi
test edi, edi
jbe 0x4f7936
mov ebx, dword [ebp - 0x44]
mov ecx, dword [eax + 0x30]
mov edx, 4
sub edx, ebx
mov dword [ebp - 0x54], edx
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x54]
mov esi, 0xfffffff8
sub esi, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp + 8], 8
lea eax, [ebx + 8]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x28], edx
mov edi, edi
mov ebx, dword [ecx]
cmp ebx, 0xffffffff
je 0x4f7920
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x2c]
mov edi, dword [ebp - 0x48]
lea ecx, [edx + esi]
lea esi, [ecx + eax]
lea ecx, [ebx*4]
mov ebx, dword [esi]
add ebx, ecx
mov ebx, dword [edi + ebx*4]
mov dword [eax - 8], ebx
mov esi, dword [esi + 4]
add esi, ecx
mov esi, dword [edi + esi*4]
mov dword [eax - 4], esi
mov esi, dword [ebp + 8]
mov esi, dword [edx + esi]
add esi, ecx
mov esi, dword [edi + esi*4]
mov dword [eax], esi
mov esi, dword [ebp - 0x54]
add edx, esi
mov edx, dword [edx + eax]
mov esi, dword [ebp - 0x74]
add edx, ecx
mov edx, dword [edi + edx*4]
mov edi, dword [ebp - 0x2c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x4c]
mov edx, dword [ecx + edx]
mov ecx, dword [ebp - 0x14]
mov dword [ecx], edx
add dword [ebp + 8], 0x10
add ecx, 4
add eax, 0x10
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x14], ecx
jne 0x4f78c0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0x2c]
shl edi, 4
push edi
push ecx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor esi, esi
jmp 0x4f795a
mov esi, 0x80004005
jmp 0x4f795a
mov esi, 0x8007000e
mov eax, dword [ebp - 0x4c]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebp - 0x50]
add esp, 4
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov edx, dword [ebp - 0x30]
add esp, 4
push edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0x48]
add esp, 4
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebp - 0x44]
add esp, 4
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8