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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov ebx, edx
mov dword [esp + 0x78], ecx
mov esi, dword [ecx + 0x38]
mov ecx, dword [edx + 8]
movsd xmm0, qword [edx]
movsd qword [esp + 0xc8], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0xc8]
movsd qword [esp], xmm0
call dword [eax + 0x98]
sub esp, 8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x74], edx
lea eax, [esp + 0xd4]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0x20
mov ecx, dword [ebx + 8]
movsd xmm0, qword [ebx]
movsd qword [esp + 0x40], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
lea edx, [esp + 0xc8]
mov dword [esp + 8], edx
call dword [eax + 0xa4]
sub esp, 0xc
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0xc0], eax
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.00550c18
sub esp, 8
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
lea edi, [esp + 0x38]
mov dword [esp], edi
mov ecx, esi
call fcn.00550c5a
sub esp, 4
mov byte [esp + 0x1f], al
test al, al
mov dword [esp + 0x34], esi
je 0x537605
mov eax, dword [0x556bbc]
cmp byte [eax], 0
je 0x5377c3
mov dword [esp + 0x6c], 0x56a680
mov dword [esp + 0x98], 1
mov dword [esp + 0x30], 0
lea ebx, [esp + 0x38]
jmp 0x53789f
mov dword [esp], edi
mov ecx, esi
call fcn.00550c90
sub esp, 4
mov dword [esp + 0x30], eax
test al, al
je 0x5376f1
mov eax, dword [ebx + 8]
movsd xmm0, qword [ebx]
movsd qword [esp + 0x40], xmm0
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x84]
call dword [edx + 0x9c]
sub esp, 0xc
mov eax, dword [esi]
mov dword [esp], esi
lea ecx, [esp + 0x40]
call dword [eax + 0x1c]
sub esp, 4
mov eax, dword [esp + 0x84]
xor eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
xor ecx, dword [esp + 0x44]
or ecx, eax
je 0x537874
movsd xmm0, qword [esp + 0x84]
mov eax, dword [esp + 0x8c]
movsd qword [esp + 0x20], xmm0
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x40]
call dword [edx + 0x28]
sub esp, 0xc
test byte [esp + 0x48], 1
lea ebx, [esp + 0x38]
jne 0x538026
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [0x556bbc]
movzx eax, byte [eax]
test edx, edx
jne 0x53788c
test al, al
je 0x537d2f
mov dword [esp + 0x6c], 0x56a680
mov dword [esp + 0x98], 1
jmp 0x53789f
mov eax, dword [esp + 0x70]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xbc], eax
movsd xmm0, qword [esp + 0xb8]
movsd qword [esp + 4], xmm0
mov dword [esp], esi
lea ecx, [esp + 0x40]
call fcn.00550c3c
sub esp, 0xc
mov eax, dword [esi]
mov dword [esp], esi
lea ecx, [esp + 0x84]
call dword [eax + 0xb4]
sub esp, 4
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x8c]
jne 0x537765
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44]
xor ecx, dword [esp + 0x88]
or ecx, eax
je 0x537874
mov ecx, esi
call fcn.00550e34
mov edi, eax
mov ebx, edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x84]
call dword [edx + 0x48]
sub esp, 0xc
test byte [esp + 0x8c], 1
jne 0x538006
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
jmp 0x537878
lea eax, [esp + 0x4c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], 0x20
mov word [esp + 0x4c], 0x7830
mov dword [esp + 0x44], 2
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
call fcn.00550ca8
sub esp, 4
test eax, eax
je 0x537d09
xor ecx, ecx
mov ebx, 0x11
xor esi, esi
nop word [eax + eax]
mov edi, eax
and edi, 0xf
movzx edx, byte [edi + str.0123456789ABCDEF]
mov byte [esp + ebx + 0x83], dl
mov edx, ecx
shld edx, eax, 0x1c
dec ebx
shr esi, 4
mov edi, 0xf
cmp edi, eax
mov eax, 0
sbb eax, ecx
mov eax, edx
mov ecx, esi
jb 0x537810
mov ecx, 0x11
sub ecx, ebx
cmp ecx, 0xfffffff0
jae 0x537d26
cmp ecx, 0xa
ja 0x537c1a
mov eax, ecx
add al, cl
mov byte [esp + 0x20], al
lea edi, [esp + 0x21]
cmp ebx, 0x11
jne 0x537c44
jmp 0x537c60
xor edi, edi
xor edx, edx
lea ebx, [esp + 0x38]
mov eax, dword [0x556bbc]
movzx eax, byte [eax]
test edx, edx
je 0x5376d1
test al, al
je 0x537bc0
mov dword [esp + 0x98], edx
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov esi, eax
mov dword [esp + 0x40], 0x56a682
mov dword [esp + 0x44], 0xa
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov dword [esp + 0x70], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x40], 0x56a190
mov dword [esp + 0x44], 6
mov eax, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov edi, dword [esi + 0x20]
mov dword [esp + 0xb0], str.PCRel
mov dword [esp + 0xb4], 5
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov ecx, ebx
call fcn.00550c42
sub esp, 4
mov edx, dword [edi]
movsd xmm0, qword [esp + 0xb0]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
mov ecx, edi
call dword [edx + 0x20]
sub esp, 0xc
mov edi, dword [esi + 0x20]
mov dword [esp + 0xa8], 0x56a693
mov dword [esp + 0xac], 6
lea esi, [esp + 0x38]
mov dword [esp], esi
mov ecx, ebx
call fcn.00550c60
sub esp, 4
mov edx, dword [edi]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
mov ecx, edi
call dword [edx + 0x20]
sub esp, 0xc
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, ebx
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
mov dword [esp], esi
call fcn.00550c36
sub esp, 4
mov dword [esp + 0x9c], eax
mov dword [esp + 0x20], 0x56a1c2
mov dword [esp + 0x24], 4
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], edi
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call fcn.0041bdf0
movzx eax, byte [esp + 0x40]
mov ecx, eax
shr ecx, 1
test al, 1
lea esi, [esp + 0x41]
mov eax, dword [esp + 0x48]
cmove eax, esi
cmovne ecx, dword [esp + 0x44]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x40], 1
je 0x537a70
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0x78]
mov edi, dword [eax + 0x20]
cmp byte [esp + 0x1f], 0
je 0x537ad6
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
call fcn.00550ca8
sub esp, 4
mov dword [esp + 0x40], 0x56a69a
mov dword [esp + 0x44], 5
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0xa8]
sub esp, 0x10
jmp 0x537ba8
movzx ebx, byte [esp + 0x30]
xor ebx, 7
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
call fcn.00550ca2
sub esp, 4
mov dword [esp + 0x9c], eax
mov eax, 0x56a6a0
cmp byte [esp + 0x30], 0
mov ecx, 0x56a168
cmovne ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call fcn.0041bdf0
movzx eax, byte [esp + 0x40]
mov ecx, eax
shr ecx, 1
test al, 1
cmovne esi, dword [esp + 0x48]
cmovne ecx, dword [esp + 0x44]
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ecx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x40], 1
je 0x537ba8
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
lea esi, [esp + 0xd4]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x537fc6
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], 0x20
mov word [esp + 0x4c], 0x7830
mov dword [esp + 0x44], 0
xor eax, eax
cmp edx, 0x21
mov dword [esp + 0x30], ecx
jb 0x537d5e
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 8], 1
lea ecx, [esp + 0x40]
mov esi, edx
call fcn.0055087c
sub esp, 0xc
mov edx, esi
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x537d5e
mov esi, ecx
or esi, 0xf
lea eax, [esi + 1]
mov dword [esp], eax
mov edi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, edi
mov edi, eax
mov dword [esp + 0x28], eax
add esi, 2
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
cmp ebx, 0x11
je 0x537c60
lea eax, [esp + ebx]
add eax, 0x84
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov esi, ecx
call sub.msvcrt.dll_memcpy
add edi, esi
mov byte [edi], 0
movzx ebx, byte [esp + 0x20]
mov edx, ebx
and dl, 1
je 0x537c86
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
lea ecx, [eax + ebx]
cmp dword [esp + 0x48], ecx
jb 0x537c99
jmp 0x537cc5
shr ebx, 1
lea esi, [esp + 0x21]
mov eax, dword [esp + 0x44]
lea ecx, [eax + ebx]
cmp dword [esp + 0x48], ecx
jae 0x537cc5
mov dword [esp + 4], ecx
lea eax, [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 8], 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x70], dl
call fcn.0055087c
sub esp, 0xc
movzx edx, byte [esp + 0x70]
mov eax, dword [esp + 0x44]
test ebx, ebx
je 0x537ce9
add eax, dword [esp + 0x40]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x44]
movzx edx, byte [esp + 0x20]
and dl, 1
mov esi, dword [esp + 0x2c]
add eax, ebx
mov dword [esp + 0x44], eax
test dl, dl
je 0x537d03
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov ebx, dword [esp + 0x74]
jmp 0x537d7e
mov byte [esp + 0x94], 0x30
mov ebx, 0x10
mov ecx, 0x11
sub ecx, ebx
cmp ecx, 0xfffffff0
jb 0x537851
lea ecx, [esp + 0x20]
call fcn.00407790
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], 0x20
mov word [esp + 0x4c], 0x7830
mov dword [esp + 0x44], 0
xor eax, eax
mov edi, 0x56a680
mov edx, 1
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x74]
add ecx, eax
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], ecx
mov edi, edx
call sub.msvcrt.dll_memcpy
add dword [esp + 0x44], edi
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x90]
mov edi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], esi
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00550ae0
mov ebx, eax
mov eax, dword [eax + 0x10]
cmp dword [ebx + 0xc], eax
je 0x537db9
mov byte [eax], 0x20
inc dword [ebx + 0x10]
jmp 0x537dd4
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, ebx
call fcn.005507d4
sub esp, 8
mov ebx, eax
mov esi, dword [esp + 0x34]
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, esi
call fcn.00550c42
sub esp, 4
mov dword [esp], eax
mov ecx, ebx
call fcn.00550810
sub esp, 4
mov ebx, eax
mov eax, dword [eax + 0x10]
cmp dword [ebx + 0xc], eax
je 0x537e08
mov byte [eax], 0x20
inc dword [ebx + 0x10]
jmp 0x537e23
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, ebx
call fcn.005507d4
sub esp, 8
mov ebx, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, esi
call fcn.00550c60
sub esp, 4
mov dword [esp], eax
mov ecx, ebx
call fcn.00550810
sub esp, 4
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
cmp byte [esp + 0x1f], 0
je 0x537e7c
sub ecx, eax
cmp ecx, 3
ja 0x537e8a
mov dword [esp + 4], 4
mov dword [esp], str._n_a
mov ecx, edi
call fcn.005507d4
sub esp, 8
mov eax, dword [edi + 0x10]
cmp dword [edi + 0xc], eax
jne 0x537efd
jmp 0x537e9c
cmp ecx, eax
je 0x537eb9
mov byte [eax], 0x20
inc dword [edi + 0x10]
mov ebx, edi
jmp 0x537ed4
mov dword [eax], 0x612f6e20
add dword [edi + 0x10], 4
mov eax, dword [edi + 0x10]
cmp dword [edi + 0xc], eax
jne 0x537efd
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, edi
call fcn.005507d4
sub esp, 8
mov edi, eax
jmp 0x537f03
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, edi
call fcn.005507d4
sub esp, 8
mov ebx, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov ecx, esi
call fcn.00550c90
sub esp, 4
movzx eax, al
mov dword [esp], eax
mov ecx, ebx
call fcn.0055080a
sub esp, 4
mov eax, dword [edi + 0x10]
cmp dword [edi + 0xc], eax
je 0x537e9c
mov byte [eax], 0x20
inc dword [edi + 0x10]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov ecx, edi
call fcn.005507d4
sub esp, 8
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x537f32
mov byte [ecx], 0x20
inc dword [eax + 0x10]
jmp 0x537f4b
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, eax
call fcn.005507d4
sub esp, 8
lea esi, [esp + 0xd4]
movzx ecx, byte [esp + 0x1f]
mov dword [esp], ecx
mov ecx, eax
call fcn.0055080a
sub esp, 4
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x537f74
mov byte [ecx], 0x20
inc dword [eax + 0x10]
jmp 0x537f8d
mov dword [esp + 4], 1
mov dword [esp], 0x56a6a7
mov ecx, eax
call fcn.005507d4
sub esp, 8
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, eax
call fcn.005507d4
sub esp, 8
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x537fe1
mov byte [ecx], 0xa
inc dword [eax + 0x10]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x30]
je 0x537fc6
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xc8]
cmp eax, esi
je 0x537fd9
mov dword [esp], eax
call sub.msvcrt.dll_free
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 1
mov dword [esp], 0x56a6ae
mov ecx, eax
call fcn.005507d4
sub esp, 8
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x30]
jne 0x537fbe
jmp 0x537fc6
mov eax, dword [esp + 0x84]
mov dword [esp + 0x84], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
jmp 0x53804a
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
call fcn.00550e34
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x7c]
mov dword [esp], eax
call fcn.0052da00
int3