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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2b8
mov eax, dword [0x625894]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x28c], ecx
push 0x47554244
lea ecx, [ebp - 0x254]
mov dword [ebp - 0x258], esi
mov dword [ebp - 0x278], eax
call fcn.004e7119
push 0xa
pop ecx
xor ebx, ebx
push 0x28
xor eax, eax
lea edi, [ebp - 0x2b8]
rep stosd dword es:[edi], eax
pop eax
xor edx, edx
inc edx
push ebx
push edx
push eax
mov dword [ebp - 0x2b8], eax
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x254]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x274], ebx
mov dword [ebp - 0x270], ebx
mov dword [ebp - 0x240], ebx
mov word [ebp - 0x288], dx
mov word [ebp - 0x286], 3
mov word [ebp - 0x284], dx
mov word [ebp - 0x282], 4
mov word [ebp - 0x280], dx
mov word [ebp - 0x27e], bx
mov dword [ebp - 0x27c], ebx
call fcn.004e7178
mov edi, eax
cmp edi, ebx
jl 0x556b84
xor eax, eax
cmp dword [ebp + 0x18], ebx
jbe 0x555bb0
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + eax*4], ebx
je 0x555baa
inc dword [ebp - 0x244]
inc eax
cmp eax, dword [ebp + 0x18]
jb 0x555b9c
xor eax, eax
xor ebx, ebx
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x214], eax
jbe 0x555c50
mov ecx, dword [ebp - 0x26c]
lea eax, [ecx + eax*4]
mov edi, dword [eax]
mov edx, dword [edi + 0x18]
test edx, edx
je 0x555c3e
mov edx, dword [edx + 0x1c]
mov ecx, edi
mov eax, dword [ecx + 0x18]
mov ebx, dword [eax + 0xc]
add dword [ebp - 0x230], ebx
mov ebx, dword [ecx + 0x3c]
add ebx, dword [ecx + 0x34]
mov ecx, dword [eax + 0x20]
add ebx, dword [eax + 0x1c]
add ecx, eax
add dword [ebp - 0x208], ebx
test edx, edx
mov ebx, dword [ebp - 0x218]
jbe 0x555c1d
add ecx, 0xc
add ebx, dword [ecx]
add ecx, 0x14
dec edx
jne 0x555c15
mov ecx, dword [edi + 0x34]
test ecx, ecx
jbe 0x555c35
mov eax, dword [edi + 0x84]
add eax, 4
add ebx, dword [eax]
add eax, 8
dec ecx
jne 0x555c2d
add ebx, dword [edi + 0x3c]
mov dword [ebp - 0x218], ebx
mov eax, dword [ebp - 0x214]
inc eax
cmp eax, dword [ebp + 0xc]
mov dword [ebp - 0x214], eax
jb 0x555bd1
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x244]
shl eax, 3
push eax
mov dword [ebp - 0x290], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
test eax, eax
pop ecx
mov dword [ebp - 0x260], eax
je 0x556853
mov eax, dword [ebp - 0x230]
test eax, eax
mov dword [ebp - 0x2ac], eax
jbe 0x555e42
mov edi, eax
shl edi, 2
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x230]
lea eax, [eax + eax*2]
shl eax, 2
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
push edi
mov dword [ebp - 0x240], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0xc
cmp dword [ebp - 0x268], 0
mov dword [ebp - 0x270], eax
je 0x556853
xor ecx, ecx
cmp dword [ebp - 0x240], ecx
je 0x556853
cmp eax, ecx
je 0x556853
cmp dword [ebp + 0xc], ecx
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x214], ecx
jbe 0x555d8d
mov edi, dword [ebp - 0x26c]
mov dword [ebp - 0x21c], edi
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + 0x10]
add edx, eax
mov dword [ebp - 0x228], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
xor ecx, ecx
cmp dword [eax + 0xc], ecx
jbe 0x555d73
mov eax, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x240]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4 + 4]
mov edi, dword [edx + ecx*4]
add edi, dword [ebp - 0x228]
inc dword [ebp - 0x20c]
mov dword [eax - 4], edi
mov edi, dword [ebp - 0x214]
mov dword [eax + 4], edi
mov edi, dword [ebp - 0x21c]
mov dword [eax], ecx
mov ebx, dword [edi]
mov ebx, dword [ebx + 0x18]
add eax, 0xc
inc ecx
cmp ecx, dword [ebx + 0xc]
jb 0x555d3c
mov ebx, dword [ebp - 0x218]
inc dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
add edi, 4
cmp eax, dword [ebp + 0xc]
mov dword [ebp - 0x21c], edi
jb 0x555d0d
mov edi, dword [ebp - 0x240]
push 0x55506a
push 0xc
push dword [ebp - 0x230]
push edi
call sub.msvcrt.dll_qsort
and dword [ebp - 0x224], 0
add esp, 0x10
cmp dword [ebp - 0x230], 0
jbe 0x555e14
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x20c], eax
push dword [ebp - 0x20c]
mov eax, dword [ebp - 0x21c]
push 7
push 0xffffffffffffffff
push dword [eax]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
inc dword [ebp - 0x224]
mov eax, dword [ebp - 0x224]
add dword [ebp - 0x20c], 4
add dword [ebp - 0x21c], 0xc
cmp eax, dword [ebp - 0x230]
jb 0x555dcb
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [ebp - 0x230]
push 1
shl eax, 2
push eax
push dword [ebp - 0x268]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
xor ecx, ecx
cmp dword [ebp - 0x208], ecx
jbe 0x5567f1
cmp ebx, ecx
jbe 0x5567f1
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x208], eax
add ebx, eax
mov eax, dword [esi + 0xac]
cmp eax, ecx
jbe 0x555e85
mov edx, dword [esi + 0xb4]
cmp byte [edx + ecx], 0
jne 0x555e80
inc dword [ebp - 0x208]
inc ebx
inc ecx
cmp ecx, eax
jb 0x555e73
mov edi, dword [ebp - 0x208]
lea edi, [edi + edi*4]
shl edi, 2
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x264], eax
lea eax, [ebx + ebx*2]
shl eax, 2
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp dword [ebp - 0x264], 0
pop ecx
pop ecx
mov dword [ebp - 0x274], eax
je 0x556853
test eax, eax
je 0x556853
mov ebx, dword [ebp - 0x264]
and dword [ebp - 0x210], 0
mov ecx, edi
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
cmp dword [esi + 0xac], 0
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x22c], eax
jbe 0x5560b0
lea eax, [ebx + 4]
mov dword [ebp - 0x228], eax
lea eax, [ebx - 0x14]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x210]
mov dword [eax], ecx
mov edx, dword [0x420cf0]
mov dword [eax + 4], edx
mov edx, dword [0x420cf4]
mov dword [eax + 8], edx
inc dword [ebx + 0xc]
and dword [ebx], 0
mov dword [ebp - 0x234], eax
add eax, 0xc
mov dword [ebp - 0x22c], eax
mov eax, dword [esi + 0xb4]
movzx eax, byte [eax + ecx]
push eax
mov eax, dword [esi + 0xb0]
movzx eax, byte [eax + ecx]
push eax
call fcn.004df4db
push eax
push 0x41eafc
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.004523d6
add esp, 0x14
push dword [ebp - 0x228]
lea eax, [ebp - 0x204]
push 6
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
push 1
shl eax, 2
push eax
push dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 8]
push eax
push 7
push 0x10
lea eax, [ebp - 0x288]
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov eax, dword [esi + 0xb4]
mov ecx, dword [ebp - 0x210]
add dword [ebp - 0x218], 0x14
add dword [ebp - 0x228], 0x14
add ebx, 0x14
cmp byte [ecx + eax], 0
jne 0x556098
mov esi, dword [ebp - 0x218]
mov eax, dword [ebp - 0x258]
push 5
pop ecx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xb0]
mov ecx, dword [ebp - 0x210]
movzx eax, byte [eax + ecx]
push eax
call fcn.004df4db
push eax
push 0x4212f8
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.004523d6
add esp, 0x10
push dword [ebp - 0x228]
lea eax, [ebp - 0x204]
push 6
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
add dword [ebp - 0x218], 0x14
mov esi, dword [ebp - 0x258]
add ebx, 0x14
add dword [ebp - 0x228], 0x14
inc dword [ebp - 0x210]
mov eax, dword [ebp - 0x210]
cmp eax, dword [esi + 0xac]
jb 0x555f12
xor edi, edi
cmp dword [esi + 0x144], edi
jne 0x5560f6
push 7
pop eax
cmp byte [esi + eax + 0xbc], 0
je 0x5560d3
dec dword [ebp - 0x208]
inc dword [ebp - 0x210]
dec eax
jns 0x5560bd
mov eax, dword [esi + 0xb8]
xor ecx, ecx
inc ecx
cmp byte [eax + ecx], 0
je 0x5560f1
dec dword [ebp - 0x208]
inc dword [ebp - 0x210]
dec ecx
jns 0x5560df
jmp 0x556108
mov eax, dword [esi + 0xa8]
sub dword [ebp - 0x208], eax
add dword [ebp - 0x210], eax
cmp dword [esi + 0xfc], edi
mov dword [ebp - 0x220], edi
jbe 0x556298
mov eax, dword [ebp - 0x22c]
add eax, 4
mov dword [ebp - 0x218], edi
mov dword [ebp - 0x20c], eax
mov eax, dword [esi + 0xf8]
mov ecx, dword [ebp - 0x220]
mov edx, dword [ebp - 0x218]
lea ecx, [eax + ecx*8]
mov eax, dword [esi + 0xf4]
add eax, edx
cmp dword [eax + 4], 0xffff
je 0x556277
mov eax, dword [eax]
mov edx, 0x407e3c
mov dx, word [edx]
cmp dx, word [eax]
jne 0x556173
dec dword [ebp - 0x208]
jmp 0x556271
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
lea edx, [edx + edx*4]
test byte [ecx + edx*4 + 0xa], 1
je 0x556277
push 3
mov edi, eax
pop ecx
mov esi, 0x4212f4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5561a1
dec dword [ebp - 0x208]
jmp 0x55626b
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x210]
mov dword [ecx], eax
mov edx, dword [0x420cf0]
mov eax, dword [ebp - 0x20c]
mov dword [eax], edx
mov edx, dword [0x420cf4]
mov dword [eax + 4], edx
inc dword [ebx + 0xc]
and dword [ebx], 0
add eax, 0xc
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x234], ecx
add ecx, 0xc
lea esi, [ebx + 0x10]
lea eax, [esi - 0xc]
push eax
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + 0xf4]
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x218]
mov eax, dword [ecx + eax]
push 7
inc eax
push 0xffffffffffffffff
inc eax
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov eax, dword [ebx + 0xc]
push esi
lea eax, [eax + eax*2]
push 1
shl eax, 2
push eax
push dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 8]
push eax
push 7
push 0x10
lea eax, [ebp - 0x288]
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
add ebx, 0x14
mov esi, dword [ebp - 0x258]
inc dword [ebp - 0x210]
inc dword [ebp - 0x220]
mov eax, dword [ebp - 0x220]
add dword [ebp - 0x218], 0x10
cmp eax, dword [esi + 0xfc]
jb 0x55612f
xor edi, edi
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x20c], edi
mov dword [ebp - 0x214], edi
jbe 0x5567ba
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x224], edx
jmp 0x5562bd
xor edi, edi
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
cmp ecx, edi
mov dword [ebp - 0x218], ecx
je 0x55679c
cmp dword [eax + 0x3c], edi
mov dword [ebp - 0x220], edi
jbe 0x556461
mov eax, dword [ebp - 0x22c]
add eax, 4
mov dword [ebp - 0x21c], eax
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
add ecx, dword [ebp - 0x220]
mov edi, dword [eax + 0x8c]
lea ecx, [ecx + ecx*4]
movzx edi, word [edi + ecx*4 + 6]
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
mov cl, byte [edi + ecx]
mov al, byte [edi + eax]
xor edi, edi
cmp dword [esi + 0xac], edi
mov byte [ebp - 0x235], cl
mov byte [ebp - 0x236], al
jbe 0x556354
mov eax, dword [esi + 0xb0]
mov cl, byte [ebp - 0x235]
cmp cl, byte [eax + edi]
jne 0x55634b
mov eax, dword [esi + 0xb4]
mov cl, byte [ebp - 0x236]
cmp cl, byte [edi + eax]
je 0x556354
inc edi
cmp edi, dword [esi + 0xac]
jb 0x556329
cmp edi, dword [esi + 0xac]
jae 0x556444
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x21c]
mov dword [eax], edi
mov edi, dword [0x420cf0]
mov dword [ecx], edi
mov edi, dword [0x420cf4]
mov dword [ecx + 4], edi
inc dword [ebx + 0xc]
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x234], eax
add eax, 0xc
add ecx, 0xc
test edi, edi
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x21c], ecx
jbe 0x556444
and dword [ebx], 0
mov eax, dword [ebp - 0x224]
mov eax, dword [eax]
mov ecx, dword [eax + 0x8c]
mov eax, dword [eax + 0x38]
add eax, dword [ebp - 0x220]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + ecx - 0x14]
lea eax, [ebx + 4]
push eax
push 7
add ecx, 2
push 0xffffffffffffffff
push ecx
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
push 1
shl eax, 2
push eax
push dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 8]
push eax
push 7
push 0x10
lea eax, [ebp - 0x288]
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov edx, dword [ebp - 0x224]
add ebx, 0x14
jmp 0x55644a
dec dword [ebp - 0x208]
inc dword [ebp - 0x220]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x220]
cmp ecx, dword [eax + 0x3c]
jb 0x5562ee
mov ecx, dword [edx]
xor eax, eax
cmp dword [ecx + 0x34], eax
mov dword [ebp - 0x220], eax
jbe 0x5565fe
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x224]
mov eax, dword [eax]
mov edx, dword [eax + 0x78]
mov esi, dword [ebp - 0x21c]
mov edi, dword [edx + esi]
push 3
pop ecx
mov esi, 0x4212f0
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5565d4
mov ecx, dword [ebp - 0x220]
mov eax, dword [eax + 0x84]
mov edx, dword [ebp - 0x22c]
and dword [ebp - 0x228], 0
shl ecx, 3
add eax, ecx
cmp dword [eax + 4], 0
mov esi, dword [eax]
mov dword [ebp - 0x234], edx
mov dword [ebp - 0x25c], ecx
jbe 0x556541
lea ecx, [edx + 4]
mov eax, esi
jmp 0x5564df
mov edx, dword [ebp - 0x22c]
mov edi, dword [ebp - 0x20c]
mov esi, dword [eax]
add esi, edi
mov edi, dword [ebp + 0x14]
cmp dword [edi + esi*4], 0
je 0x556518
mov esi, dword [eax]
mov edi, dword [ebp - 0x210]
add esi, edi
mov dword [edx], esi
mov esi, dword [eax + 4]
mov dword [ecx], esi
mov esi, dword [eax + 8]
mov dword [ecx + 4], esi
inc dword [ebx + 0xc]
add edx, 0xc
mov dword [ebp - 0x22c], edx
add ecx, 0xc
mov edx, dword [ebp - 0x224]
inc dword [ebp - 0x228]
mov edx, dword [edx]
mov edx, dword [edx + 0x84]
mov esi, dword [ebp - 0x25c]
mov edi, dword [ebp - 0x228]
add eax, 0xc
cmp edi, dword [edx + esi + 4]
jb 0x5564d9
cmp dword [ebx + 0xc], 0
jbe 0x5565d4
and dword [ebx], 0
mov eax, dword [ebp - 0x224]
mov eax, dword [eax]
mov eax, dword [eax + 0x78]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ecx + eax]
lea esi, [ebx + 0x10]
lea ecx, [esi - 0xc]
push ecx
push 7
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov eax, dword [ebx + 0xc]
push esi
lea eax, [eax + eax*2]
push 1
shl eax, 2
push eax
push dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 8]
push eax
push 7
push 0x10
lea eax, [ebp - 0x288]
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
add ebx, 0x14
jmp 0x5565da
dec dword [ebp - 0x208]
inc dword [ebp - 0x220]
mov eax, dword [ebp - 0x224]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x220]
add dword [ebp - 0x21c], 0x10
cmp ecx, dword [eax + 0x34]
jb 0x55647a
mov edx, dword [ebp - 0x224]
mov eax, dword [edx]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
add eax, dword [ebp - 0x218]
and dword [ebp - 0x220], 0
test ecx, ecx
mov dword [ebp - 0x25c], ecx
jbe 0x556782
lea esi, [eax + 0xc]
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x22c]
add eax, dword [ebp - 0x218]
and dword [ebp - 0x228], 0
cmp dword [esi], 0
mov dword [ebp - 0x234], ecx
jbe 0x5566a1
add ecx, 4
mov edi, dword [ebp - 0x20c]
mov edx, dword [eax]
add edx, edi
mov edi, dword [ebp + 0x14]
cmp dword [edi + edx*4], 0
je 0x55668e
mov edx, dword [eax]
mov edi, dword [ebp - 0x210]
add edx, edi
mov edi, dword [ebp - 0x22c]
add dword [ebp - 0x22c], 0xc
mov dword [edi], edx
mov edx, dword [eax + 4]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 4], edx
inc dword [ebx + 0xc]
add ecx, 0xc
inc dword [ebp - 0x228]
mov edx, dword [ebp - 0x228]
add eax, 0xc
cmp edx, dword [esi]
jb 0x556651
cmp dword [ebx + 0xc], 0
jbe 0x55675b
mov eax, dword [esi - 0xc]
test eax, eax
je 0x5566d7
mov ecx, dword [ebp - 0x218]
push ebx
push 7
add eax, ecx
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
jmp 0x5566da
and dword [ebx], 0
mov eax, dword [esi - 8]
add eax, dword [ebp - 0x218]
lea ecx, [ebx + 4]
push ecx
push 7
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
push 1
shl eax, 2
push eax
push dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov eax, dword [esi - 4]
add eax, dword [ebp - 0x218]
lea ecx, [ebx + 8]
push ecx
push eax
push dword [ebp - 0x218]
lea eax, [ebp - 0x254]
push eax
call fcn.00551542
mov edi, eax
test edi, edi
jl 0x556b84
add ebx, 0x14
jmp 0x556761
dec dword [ebp - 0x208]
inc dword [ebp - 0x220]
mov eax, dword [ebp - 0x220]
add esi, 0x14
cmp eax, dword [ebp - 0x25c]
jb 0x55662d
mov edx, dword [ebp - 0x224]
mov eax, dword [edx]
mov eax, dword [eax + 0x9c]
add dword [ebp - 0x210], eax
add dword [ebp - 0x20c], eax
mov esi, dword [ebp - 0x258]
inc dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
add edx, 4
cmp eax, dword [ebp + 0xc]
mov dword [ebp - 0x224], edx
jb 0x5562bb
mov esi, dword [ebp - 0x208]
lea eax, [ebp - 0x298]
push eax
push 1
lea eax, [esi + esi*4]
shl eax, 2
push eax
push dword [ebp - 0x264]
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
mov dword [ebp - 0x29c], esi
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x23c]
mov edx, dword [ebp + 0x1c]
add ecx, 4
test edx, edx
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x260]
jbe 0x5568a9
mov edi, dword [ebp - 0x278]
mov dword [ebp - 0x21c], edx
or word [eax + 2], 0xffff
and word [eax], 0
mov ebx, 0xffff
mov edx, dword [ecx]
test edx, edx
js 0x556871
mov esi, edx
and esi, ebx
cmp esi, ebx
je 0x556889
cmp esi, 0xfffe
jne 0x55685d
shr edx, 0x10
and edx, 0x7fff
lea ecx, [ecx + edx*4]
jmp 0x556871
mov edi, 0x8007000e
jmp 0x556b84
cmp esi, 0x51
je 0x556884
cmp esi, 0x30
je 0x556884
cmp esi, 0x2f
je 0x556876
cmp esi, 0x1f
je 0x55687d
add ecx, 4
jmp 0x55682f
mov edi, ecx
add ecx, 0xc
jmp 0x556889
mov edi, ecx
add ecx, 4
jmp 0x556889
mov edi, ecx
add ecx, 0x18
mov edx, edi
sub edx, dword [ebp - 0x23c]
add eax, 8
sar edx, 2
shl edx, 2
dec dword [ebp - 0x21c]
mov dword [eax - 4], edx
jne 0x556820
and dword [ebp - 0x214], 0
cmp dword [ebp + 0xc], 0
jbe 0x5569f8
mov edx, dword [ebp - 0x278]
mov ebx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x26c]
lea ecx, [ecx + esi*4]
mov esi, dword [ecx]
mov esi, dword [esi + 0x18]
test esi, esi
mov dword [ebp - 0x25c], esi
jne 0x55691f
test edx, edx
jbe 0x5569e3
mov ecx, dword [ebp - 0x20c]
mov esi, edx
cmp dword [ecx], 0
je 0x556917
or word [eax + 2], 0xffff
and word [eax], 0
mov edi, dword [ecx]
sub edi, dword [ebp - 0x23c]
sar edi, 2
shl edi, 2
mov dword [eax + 4], edi
add eax, 8
dec esi
jne 0x5568f4
jmp 0x5569e3
cmp dword [esi + 0xc], 0
jbe 0x556971
and dword [ebp - 0x224], 0
cmp dword [ebp - 0x230], 0
jbe 0x556971
mov edx, dword [ebp - 0x240]
add edx, 4
mov edi, dword [edx + 4]
cmp edi, dword [ebp - 0x214]
jne 0x55695a
mov esi, dword [edx]
mov edi, dword [ebp - 0x224]
mov dword [ebx + esi*4], edi
mov esi, dword [ebp - 0x25c]
inc dword [ebp - 0x224]
mov edi, dword [ebp - 0x224]
add edx, 0xc
cmp edi, dword [ebp - 0x230]
jb 0x55693e
mov edx, dword [ecx]
mov ecx, dword [edx + 0x18]
mov ecx, dword [ecx + 0x18]
mov edx, dword [edx + 0x9c]
add ecx, esi
test edx, edx
jbe 0x5569e3
mov edi, dword [ebp - 0x20c]
add ecx, 2
mov dword [ebp - 0x21c], edx
cmp dword [edi], 0
je 0x5569cf
mov si, word [ecx]
cmp si, 0xffff
je 0x5569ab
movzx esi, si
mov esi, dword [ebx + esi*4]
jmp 0x5569b0
mov esi, 0xffff
mov word [eax + 2], si
mov si, word [ecx - 2]
mov word [eax], si
mov esi, dword [edi]
sub esi, dword [ebp - 0x23c]
sar esi, 2
shl esi, 2
mov dword [eax + 4], esi
add eax, 8
add ecx, 8
add edi, 4
dec dword [ebp - 0x21c]
jne 0x556994
mov dword [ebp - 0x20c], edi
inc dword [ebp - 0x214]
mov ecx, dword [ebp - 0x214]
cmp ecx, dword [ebp + 0xc]
jb 0x5568c6
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x2a4], eax
lea eax, [ebp - 0x2a0]
push eax
push 1
push dword [ebp - 0x290]
lea ecx, [ebp - 0x254]
push dword [ebp - 0x260]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
and dword [ebp - 0x214], 0
cmp dword [ebp + 0xc], 0
lea edx, [ebp - 0x204]
mov dword [ebp - 0x20c], 0x1ff
jbe 0x556aa4
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x214]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 4]
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x556a62
sub eax, edi
cmp eax, dword [ebp - 0x20c]
jbe 0x556a79
mov eax, dword [ebp - 0x20c]
sub dword [ebp - 0x20c], eax
mov ecx, eax
mov ebx, ecx
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
add edx, eax
inc dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cmp eax, dword [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
jb 0x556a4b
lea eax, [ebp - 0x294]
push eax
push 7
push 0xffffffffffffffff
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x254]
mov byte [edx], 0
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea eax, [ebp - 0x2b4]
push eax
push 5
push 0xffffffffffffffff
push 0x420d28
lea ecx, [ebp - 0x254]
call fcn.004e7178
mov edi, eax
test edi, edi
jl 0x556b84
lea ecx, [ebp - 0x254]
call fcn.004e72b6
cmp eax, 0x8000
ja 0x556b57
mov edx, dword [ebp - 0x23c]
mov esi, eax
shl esi, 2
mov ecx, edx
mov edx, dword [edx]
sub ecx, esi
xor edi, edi
mov dword [ecx], edx
cmp dword [ebp - 0x2a4], edi
mov dword [ebp - 0x23c], ecx
jbe 0x556b3f
mov edx, dword [ebp - 0x260]
add edx, 4
add dword [edx], esi
inc edi
add edx, 8
cmp edi, dword [ebp - 0x2a4]
jb 0x556b31
add ecx, 4
push eax
push ecx
lea ecx, [ebp - 0x254]
call fcn.004e72c7
mov edi, eax
test edi, edi
jl 0x556b84
jmp 0x556b74
mov eax, dword [ebp - 0x28c]
push 0x40ac1c
push 0x9ce
push 0
push dword [eax + 0x54]
call fcn.00572600
add esp, 0x10
mov eax, dword [ebp - 0x23c]
mov ecx, dword [ebp - 0x278]
mov dword [ecx], eax
xor edi, edi
push dword [ebp - 0x260]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x270]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x268]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x240]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x264]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x274]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 0x18
lea ecx, [ebp - 0x254]
call fcn.004e713b
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.006056c0
leave
ret 0x20