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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x990
mov esi, ecx
lea edi, [esp + 0x3d8]
push edx
push edi
call fcn.004120d0
add esp, 8
movzx ebx, byte [esp + 0x575]
cmp bl, 2
jne 0x47474f
movsd xmm0, qword [esp + 0x3e8]
movsd xmm1, qword [esp + 0x3d8]
movsd xmm2, qword [esp + 0x3e0]
movsd qword [esp + 0x6d0], xmm0
movsd qword [esp + 0x6c8], xmm2
movsd qword [esp + 0x6c0], xmm1
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 0x10], xmm2
movsd qword [esi + 8], xmm1
mov dword [esi], 1
jmp 0x4749b7
mov dword [esp + 0x4c], esi
lea esi, [esp + 0x6c0]
push 0x19d
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x28e]
lea eax, [esp + 0x576]
push 0x14a
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0xf0]
push 0x19d
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esp + 0x28d], bl
lea ecx, [esp + 0x294]
mov edx, dword [esp + 0x29c]
cmp edx, 0x7ffffffe
ja 0x474956
cmp edx, dword [esp + 0x298]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x3d8], 4
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e4], 4
mov dword [esp + 0x3e8], 0
mov dword [esp + 0x3ec], 0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], 0
jne 0x47482d
call fcn.00406cd0
mov edx, dword [esp + 0x29c]
mov eax, dword [esp + 0x294]
movsd xmm0, qword [esp + 0x3f0]
mov ecx, edx
inc edx
shl ecx, 5
cmp edx, 0x7ffffffe
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0x3e8]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esp + 0x29c], edx
ja 0x474956
cmp edx, dword [esp + 0x298]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x3d8], 4
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e4], 4
mov dword [esp + 0x3e8], 0
mov dword [esp + 0x3ec], 0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], 0
jne 0x4748ff
lea ecx, [esp + 0x294]
call fcn.00406cd0
mov edx, dword [esp + 0x29c]
mov eax, dword [esp + 0x294]
movsd xmm0, qword [esp + 0x3f0]
mov ecx, edx
inc edx
shl ecx, 5
cmp edx, 0x7ffffffe
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0x3e8]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esp + 0x29c], edx
jbe 0x4749bf
mov ebx, 0x7ffffffe
xor edi, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
mov esi, edx
lea ecx, [esp + 0x110]
call fcn.00481430
lea eax, [esp + 0x294]
push eax
call fcn.00481340
add esp, 4
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x20]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov dword [eax], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x3c8]
cmp edx, dword [esp + 0x298]
mov edi, edx
mov dword [esp + 0x3d8], 4
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e4], 4
mov dword [esp + 0x3e8], 0
mov dword [esp + 0x3ec], 0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], 0
jne 0x474a3c
lea ecx, [esp + 0x294]
mov esi, edx
call fcn.00406cd0
mov edi, dword [esp + 0x29c]
mov edx, esi
mov eax, dword [esp + 0x294]
movsd xmm0, qword [esp + 0x3f0]
mov ecx, edi
inc edi
shl ecx, 5
cmp edi, 0x7ffffffe
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0x3e8]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esp + 0x29c], edi
mov dword [esp + 0x3c8], edx
jbe 0x474abc
mov dword [esp + 0x20], 0
mov ebx, 0x7ffffffe
mov dword [esp + 0x18], 0
mov esi, edi
mov dword [esp + 0x10], edi
xor edi, edi
jmp 0x474973
cmp edi, dword [esp + 0x298]
mov ecx, edi
mov dword [esp + 0x3d8], 4
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e4], 4
mov dword [esp + 0x3e8], 0
mov dword [esp + 0x3ec], 0
mov dword [esp + 0x3f0], edx
mov dword [esp + 0x3f4], 0
jne 0x474b30
lea ecx, [esp + 0x294]
mov edx, edi
call fcn.00406cd0
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0x294]
movsd xmm0, qword [esp + 0x3f0]
mov edx, ecx
inc ecx
shl edx, 5
movsd qword [eax + edx + 0x18], xmm0
movsd xmm0, qword [esp + 0x3e8]
movsd qword [eax + edx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [eax + edx + 8], xmm1
movsd qword [eax + edx], xmm0
mov dword [esp + 0x29c], ecx
mov dword [esp + 0x3cc], edi
lea eax, [esp + 0xf0]
push eax
call fcn.00413440
add esp, 4
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
xor edx, edx
shl eax, 4
add eax, edi
mov dword [esp + 0x58], eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x68], edx
cmp ebx, 0x7ffffffe
ja 0x4755a2
mov ecx, dword [esp + 0x3b8]
mov eax, dword [esp + 0x2a8]
mov esi, ebx
cmp ecx, ebx
mov dword [esp + 0x6c], eax
cmovae ecx, ebx
mov dword [esp + 0x3b8], ecx
mov ecx, dword [esp + 0x3bc]
cmp ecx, ebx
cmovbe ecx, ebx
mov ebx, dword [edi]
cmp edx, eax
mov dword [esp + 0x3bc], ecx
jne 0x4755f5
cmp edx, dword [esp + 0x2a4]
lea eax, [edx + 1]
mov ecx, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x5c], eax
jne 0x474c27
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x2a0]
call fcn.00484ab0
mov ecx, dword [esp + 0x2a8]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x2a0]
mov dword [edx + ecx*4], esi
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x290]
cmp byte [eax], 0
je 0x474c56
push esi
push ebx
lea eax, [esp + 0x118]
push eax
call fcn.00418620
add esp, 0xc
mov edx, dword [esp + 0x3c8]
test esi, esi
mov dword [esp + 0x44], edi
je 0x475387
mov edi, ebx
add esi, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], esi
jmp 0x474ca5
mov ecx, esi
inc edi
inc dword [esp + 0x50]
mov edx, ecx
mov esi, ecx
cmp edi, dword [esp + 0x60]
je 0x475389
mov ch, byte [edi]
mov esi, edi
test byte [esp + 0x54], 1
mov edi, dword [esp + 0x44]
mov al, 1
mov byte [esp + 0x18], ch
jne 0x474ce1
mov eax, dword [esp + 0x29c]
cmp edx, eax
jae 0x4755c2
mov eax, dword [esp + 0x294]
mov ecx, edx
shl ecx, 5
cmp dword [eax + ecx + 0x14], 0
mov ch, byte [esp + 0x18]
setne al
mov ebx, dword [esp + 0x290]
test al, al
mov dword [esp + 0x54], eax
je 0x474cfa
cmp byte [ebx + 2], 1
je 0x4753d3
test ch, ch
mov dword [esp + 0x14], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], esi
je 0x474de2
mov al, ch
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 1
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
dec al
mov cl, al
mov ah, al
and al, 7
and cl, 0x78
shr ah, 7
shr cl, 3
neg cl
movsx edx, cl
mov cl, al
mov ebx, dword [esp + edx + 0xe8]
mov dword [esp + 0xc], ebx
shl ebx, cl
not cl
mov edi, dword [esp + edx + 0xe4]
mov dword [esp + 0x20], edi
shr edi, 1
shr edi, cl
mov esi, dword [esp + edx + 0xec]
mov cl, al
mov edx, dword [esp + edx + 0xe0]
or edi, ebx
mov ebx, dword [esp + 0xc]
shld esi, ebx, cl
movzx ebx, ah
mov eax, dword [esp + 0x20]
shl ebx, 4
or dword [esp + ebx + 0xfc], esi
or dword [esp + ebx + 0xf8], edi
shld eax, edx, cl
shl edx, cl
or dword [esp + ebx + 0xf0], edx
or dword [esp + ebx + 0xf4], eax
mov cl, ch
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 1
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov al, ch
and cl, 0x78
and al, 7
shr cl, 3
neg cl
movsx edx, cl
mov cl, al
mov ebx, dword [esp + edx + 0xc8]
mov dword [esp + 0x20], ebx
shl ebx, cl
not cl
mov edi, dword [esp + edx + 0xc4]
mov dword [esp + 0xc], edi
shr edi, 1
shr edi, cl
mov esi, dword [esp + edx + 0xcc]
mov cl, al
mov eax, dword [esp + 0xc]
or edi, ebx
mov ebx, dword [esp + edx + 0xc0]
mov edx, dword [esp + 0x20]
shld esi, edx, cl
movzx edx, ch
shld eax, ebx, cl
shl ebx, cl
mov dword [esp + 0x20], edx
shr edx, 3
and edx, 0xfffffff0
or dword [esp + edx + 0xf4], eax
mov eax, dword [esp + 0x14]
or dword [esp + edx + 0xfc], esi
or dword [esp + edx + 0xf0], ebx
or dword [esp + edx + 0xf8], edi
cmp byte [eax + 1], 0
je 0x475098
mov al, ch
add al, 0xbf
cmp al, 0x19
ja 0x474ee0
mov al, ch
or al, 0x20
jmp 0x474efb
mov al, ch
mov cl, ch
add al, 0x9f
xor cl, 0x20
cmp al, 0x1a
movzx eax, cl
cmovae eax, dword [esp + 0x20]
test al, al
je 0x475364
mov edx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 1
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
dec dl
mov ecx, edx
mov ch, dl
and dl, 7
and cl, 0x78
shr ch, 7
shr cl, 3
neg cl
movsx ebx, cl
mov cl, dl
mov eax, dword [esp + ebx + 0xa8]
mov edi, dword [esp + ebx + 0xa4]
mov esi, eax
mov dword [esp + 0xc], edi
shr edi, 1
shl esi, cl
not cl
shr edi, cl
mov cl, dl
mov edx, dword [esp + 0x14]
or edi, esi
mov esi, dword [esp + ebx + 0xac]
mov ebx, dword [esp + ebx + 0xa0]
shld esi, eax, cl
movzx eax, ch
shl eax, 4
or dword [esp + eax + 0xfc], esi
mov esi, dword [esp + 0xc]
or dword [esp + eax + 0xf8], edi
shld esi, ebx, cl
shl ebx, cl
or dword [esp + eax + 0xf0], ebx
or dword [esp + eax + 0xf4], esi
mov eax, edx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov ch, dl
and dl, 7
and al, 0x78
mov cl, dl
shr ch, 7
shr al, 3
neg al
movsx ebx, al
mov eax, dword [esp + ebx + 0x88]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
shl eax, cl
not cl
mov esi, dword [esp + ebx + 0x84]
mov edi, esi
shr edi, 1
shr edi, cl
mov cl, dl
mov edx, dword [esp + 0xc]
or edi, eax
mov eax, dword [esp + ebx + 0x8c]
shld eax, edx, cl
mov edx, dword [esp + ebx + 0x80]
movzx ebx, ch
mov ecx, dword [esp + 0x14]
shl ebx, 4
or dword [esp + ebx + 0xfc], eax
or dword [esp + ebx + 0xf8], edi
shld esi, edx, cl
shl edx, cl
or dword [esp + ebx + 0xf0], edx
or dword [esp + ebx + 0xf4], esi
mov eax, dword [esp + 0x29c]
mov esi, dword [esp + 0x40]
cmp esi, eax
jae 0x4755b4
mov ecx, dword [esp + 0x294]
mov edx, esi
shl edx, 5
mov dword [esp + 0x14], edx
mov eax, dword [ecx + edx]
mov ecx, dword [ecx + edx + 8]
cmp ecx, 0x100
jne 0x4750e0
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
lea edx, [eax + ecx*8 + 4]
jmp 0x475106
mov edi, dword [esp + 0x10]
add eax, 0xfffffffc
shl ecx, 3
nop word [eax + eax]
test ecx, ecx
je 0x475111
movzx ebx, byte [esp + 0x18]
add ecx, 0xfffffff8
lea edx, [eax + 8]
cmp byte [eax + 4], bl
mov eax, edx
jne 0x4750f0
mov ecx, dword [edx]
cmp ecx, 1
jne 0x474c92
push dword [esp + 0x50]
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x3e0]
push eax
call fcn.00413d10
add esp, 0xc
mov edi, dword [esp + 0x3d8]
mov ecx, dword [esp + 0x3dc]
cmp edi, 3
jne 0x475573
mov eax, dword [esp + 0x29c]
cmp esi, eax
jae 0x4755bb
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x294]
mov eax, dword [esp + 0x14]
mov esi, dword [ecx + eax]
mov dword [esp + 0x64], ecx
mov ecx, dword [ecx + eax + 8]
test ecx, ecx
mov dword [esp + 0xc], ecx
je 0x4751c0
xor edi, edi
mov eax, ecx
jmp 0x475186
mov ecx, eax
sub eax, edi
jbe 0x4751c2
movzx ebx, byte [esp + 0x18]
shr eax, 1
xor edx, edx
add eax, edi
cmp byte [esi + eax*8], bl
mov ebx, 0xff
setne dl
cmovb edx, ebx
cmp dl, 1
je 0x475180
movzx edx, dl
cmp edx, 0xff
jne 0x47522e
inc eax
mov edi, eax
mov eax, ecx
sub eax, edi
ja 0x475186
jmp 0x4751c2
xor edi, edi
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0xc]
add ebx, dword [esp + 0x14]
cmp edx, dword [ebx + 4]
jne 0x4751e0
mov ecx, ebx
call fcn.00406e10
mov esi, dword [ebx]
mov edx, dword [esp + 0xc]
mov eax, edx
sub eax, edi
jbe 0x475210
lea ecx, [esi + edi*8]
shl eax, 3
push eax
push ecx
add ecx, 8
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x18]
add esp, 0xc
movzx ecx, byte [esp + 0x18]
jmp 0x47521b
movzx ecx, byte [esp + 0x18]
jne 0x4755e6
mov eax, dword [esp + 0x3c]
mov byte [esi + edi*8], cl
inc edx
mov dword [esi + edi*8 + 4], eax
mov esi, eax
mov dword [ebx + 8], edx
jmp 0x475240
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov byte [esi + eax*8], cl
mov dword [esi + eax*8 + 4], edx
mov esi, edx
mov eax, dword [esp + 0x290]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp byte [eax + 1], 0
je 0x474c90
mov eax, dword [esp + 0x29c]
cmp edx, eax
jae 0x4755c9
mov eax, ecx
add al, 0xbf
cmp al, 0x1a
jae 0x47527b
or cl, 0x20
mov eax, ecx
mov dword [esp + 0x20], eax
jmp 0x475292
mov edx, dword [esp + 0x20]
mov eax, ecx
xor cl, 0x20
add al, 0x9f
movzx ecx, cl
cmp al, 0x1a
cmovb edx, ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x294]
mov eax, dword [esp + 0x14]
mov esi, dword [ecx + eax]
mov dword [esp + 0x40], ecx
mov ecx, dword [ecx + eax + 8]
test ecx, ecx
mov dword [esp + 0xc], ecx
je 0x475301
xor edi, edi
mov eax, ecx
mov dword [esp + 0x18], esi
jmp 0x4752ca
mov ecx, eax
mov esi, dword [esp + 0x18]
sub eax, edi
jbe 0x475303
mov ebx, dword [esp + 0x20]
shr eax, 1
xor edx, edx
add eax, edi
cmp byte [esi + eax*8], bl
mov esi, 0xff
setne dl
cmovb edx, esi
cmp dl, 1
je 0x4752c0
movzx edx, dl
cmp edx, 0xff
jne 0x47536b
inc eax
mov edi, eax
mov eax, ecx
mov esi, dword [esp + 0x18]
sub eax, edi
ja 0x4752ca
jmp 0x475303
xor edi, edi
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov ecx, esi
add ebx, dword [esp + 0x14]
cmp edx, dword [ebx + 4]
jne 0x475323
mov ecx, ebx
call fcn.00406e10
mov ecx, dword [ebx]
mov edx, dword [esp + 0xc]
mov eax, edx
mov esi, edi
sub eax, edi
jbe 0x475347
mov edi, ecx
lea ecx, [ecx + esi*8]
shl eax, 3
push eax
push ecx
add ecx, 8
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x47534f
mov edi, ecx
jne 0x4755e4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
inc edx
mov byte [edi + esi*8], al
mov dword [edi + esi*8 + 4], ecx
mov dword [ebx + 8], edx
jmp 0x47537e
xor edx, edx
jmp 0x474fd2
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov byte [edi + eax*8], cl
mov ecx, dword [esp + 0x3c]
mov dword [edi + eax*8 + 4], ecx
mov edi, dword [esp + 0x10]
jmp 0x474c92
mov esi, edx
mov eax, dword [esp + 0x29c]
cmp esi, eax
jae 0x4755dd
mov eax, dword [esp + 0x294]
shl esi, 5
mov ecx, esi
mov edx, dword [eax + ecx + 0x14]
lea esi, [eax + esi + 0xc]
cmp edx, dword [eax + ecx + 0x10]
jne 0x4753c2
mov ecx, esi
call fcn.00484ab0
mov edi, dword [esp + 0x44]
mov edx, dword [esi + 8]
jmp 0x4753c6
mov edi, dword [esp + 0x44]
mov eax, dword [esi]
mov ecx, dword [esp + 0x48]
mov dword [eax + edx*4], ecx
inc edx
mov dword [esi + 8], edx
add edi, 0x10
mov edx, dword [esp + 0x5c]
cmp edi, dword [esp + 0x58]
jne 0x474ba7
lea eax, [esp + 0xf0]
push eax
call fcn.004135a0
add esp, 4
lea eax, [esp + 0xf0]
push eax
call fcn.00413730
add esp, 4
lea eax, [esp + 0xf0]
push eax
call fcn.00413a90
add esp, 4
lea eax, [esp + 0xf0]
push eax
call fcn.004124b0
add esp, 4
lea eax, [esp + 0xf0]
push eax
call fcn.004138d0
add esp, 4
lea eax, [esp + 0xf0]
push eax
call fcn.00412bb0
add esp, 4
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x3dc]
push eax
call fcn.00417780
add esp, 8
lea eax, [esp + 0x2b8]
push 0x100
lea esi, [esp + 0x3dc]
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x110]
push eax
push esi
call fcn.00417c70
add esp, 8
mov ecx, dword [esp + 0x2ac]
lea edi, [esp + 0x2ac]
test ecx, ecx
je 0x4754ad
lock dec dword [ecx]
jne 0x4754ad
mov edx, dword [esp + 0x2b0]
call fcn.00483e10
mov eax, dword [esp + 0x3e0]
movsd xmm0, qword [esp + 0x3d8]
mov dword [edi + 8], eax
movsd qword [edi], xmm0
lea eax, [esp + 0xf0]
push eax
call fcn.00413e50
add esp, 4
xor eax, eax
cmp dword [esp + 0x2ac], 0
setne al
mov eax, dword [esp + eax*8 + 0x3c4]
mov dword [esp + 0x3c0], eax
lea eax, [esp + 0x2b0]
mov edi, dword [esp + 0x29c]
lea esi, [esp + 0x860]
push 0x128
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x294]
movups xmm1, xmmword [esp + 0x2a0]
movsd qword [esp + 0x18], xmm0
movaps xmmword [esp + 0x20], xmm1
lea ecx, [esp + 0x110]
call fcn.00481430
mov ebx, dword [esp + 0x4c]
movaps xmm0, xmmword [esp + 0x20]
movsd xmm1, qword [esp + 0x18]
movups xmmword [ebx + 0x10], xmm0
movsd qword [ebx + 4], xmm1
mov dword [ebx + 0xc], edi
lea eax, [ebx + 0x20]
push 0x128
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [ebx], 0
jmp 0x4749b7
mov esi, ecx
mov eax, dword [esp + 0x3e4]
mov edx, dword [esp + 0x3ec]
mov ecx, dword [esp + 0x3e8]
mov ebx, dword [esp + 0x3e0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ecx
jmp 0x474973
mov dword [esp + 0x18], 0
mov edi, 2
jmp 0x474971
mov ecx, 0x5aca20
jmp 0x4755d0
mov ecx, 0x5aca34
jmp 0x4755d0
mov ecx, 0x5aca10
jmp 0x4755ce
mov ecx, 0x5aca44
mov esi, edx
push ecx
push eax
push esi
call fcn.00425270
add esp, 0xc
jmp 0x47564c
mov ecx, 0x5aca00
jmp 0x4755d0
mov edi, esi
push dword [esp + 0xc]
push edi
call fcn.0041baa0
add esp, 8
jmp 0x47564c
mov dword [esp + str.expected_number_of_patterns_to_match_pattern_ID], 0x5aca84
mov dword [esp + 0x3dc], 1
mov dword [esp + 0x3e0], 0x5ac720
mov dword [esp + 0x3e4], 0
mov dword [esp + 0x3e8], 0
lea eax, [esp + 0x6c]
lea edx, [esp + 0x68]
xor ecx, ecx
push 0x5aca8c
lea esi, [esp + 0x3dc]
push esi
push eax
call fcn.004839b0
add esp, 0xc
ud2