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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x9a8
mov esi, dword [ebp + 8]
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
test esi, esi
je 0x46cd93
mov edi, dword [ecx + 0x14]
cmp edi, 0x19
jbe 0x46cdcb
mov dword [ebx], 5
mov esi, dword [ebp + 0xc]
cmp dword [esi + 4], 0
je 0x46cdb2
mov eax, dword [0x56bbf8]
push dword [esi]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp dword [esi + 0x10], 0
je 0x46cdfa
mov eax, dword [0x56bbf8]
push dword [esi + 0xc]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x46cdfa
cmp byte [ecx + 0x18], 0
je 0x46ce02
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov dword [ebx + 0x1c], eax
movsd qword [ebx + 0x14], xmm0
movsd qword [ebx + 0xc], xmm1
movsd qword [ebx + 4], xmm2
mov dword [ebx], 6
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edx
cmp esi, 1
jne 0x46ce9c
mov edx, dword [eax]
lea ecx, [esp + 0x3f0]
push dword [eax + 8]
call fcn.0046dc40
add esp, 4
movsd xmm1, qword [esp + 0x420]
movsd xmm2, qword [esp + 0x418]
movsd xmm0, qword [esp + 0x428]
movsd qword [ebx + 0x38], xmm1
movsd xmm1, qword [esp + 0x410]
movsd qword [ebx + 0x30], xmm2
movsd xmm2, qword [esp + 0x408]
movsd qword [ebx + 0x40], xmm0
movsd qword [ebx + 0x28], xmm1
movsd xmm1, qword [esp + 0x400]
movsd qword [ebx + 0x20], xmm2
movsd xmm2, qword [esp + 0x3f0]
movsd qword [ebx + 0x18], xmm1
movsd xmm1, qword [esp + 0x3f8]
movsd qword [ebx + 8], xmm2
movsd qword [ebx + 0x10], xmm1
mov dword [ebx], 7
jmp 0x46cd99
mov edx, eax
lea ecx, [esp + 0x1c]
push esi
call fcn.004590a0
add esp, 4
mov ecx, dword [ebp + 0xc]
cmp edi, 2
mov dword [esp + 0x28], ebx
setae al
cmp byte [ecx + 0x19], 0
sete cl
cmp esi, 0x64
ja 0x46d040
or al, cl
je 0x46d040
mov esi, dword [esp + 0x24]
movaps xmm1, xmmword [0x519f90]
xorps xmm0, xmm0
mov dword [esp + 0x8c], 0x2020200
mov byte [esp + 0x90], 0
mov dword [esp + 0x68], 4
movlps qword [esp + 0x6c], xmm0
mov dword [esp + 0x74], 2
test esi, esi
movups xmmword [esp + 0x78], xmm1
mov word [esp + 0x88], 0
mov byte [esp + 0x8a], 0
je 0x46d014
mov edi, dword [esp + 0x1c]
shl esi, 4
xor eax, eax
add esi, edi
mov dword [esp + 8], esi
test al, al
jne 0x46d009
jmp 0x46cf50
movzx eax, byte [esp + 0x90]
test al, al
jne 0x46d009
mov eax, dword [esp + 0x70]
cmp eax, 0x80
jb 0x46cfb0
mov byte [esp + 0x90], 1
mov byte [esp + 0x8a], 0
mov esi, dword [esp + 0x68]
mov dword [esp + 0x70], 0
shl eax, 2
add esi, 4
lea ebx, [eax + eax*2]
jmp 0x46cf98
add esi, 0xc
add ebx, 0xfffffff4
je 0x46cfe9
cmp dword [esi], 0
je 0x46cf90
push dword [esi - 4]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x46cf90
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x46cfc9
push ecx
push dword [edi]
lea eax, [esp + 0x70]
push eax
call fcn.004059b0
add esp, 0xc
jmp 0x46d009
mov byte [esp + 0x90], 1
mov byte [esp + 0x8a], 0
test eax, eax
mov esi, dword [esp + 0x68]
mov dword [esp + 0x70], 0
jne 0x46cf77
movsd xmm0, qword [0x519fa0]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 8]
movsd qword [esp + 0x7c], xmm0
mov word [esp + 0x88], 0
add edi, 0x10
cmp edi, esi
jne 0x46cf40
lea eax, [esp + 0x68]
lea ecx, [esp + 0x3f0]
push eax
push ecx
call fcn.00403d20
add esp, 8
cmp byte [esp + 0x434], 2
jne 0x46d5fc
lea ecx, [esp + 0x68]
call fcn.00457700
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x3c], 0x101
mov dword [esp + 0x38], 2
mov word [esp + 0x40], 0x101
mov byte [esp + 0x42], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x3f0]
lea edx, [esp + 0x38]
call fcn.00452730
movzx ebx, byte [esp + 0x40a]
mov eax, dword [esp + 0x3f4]
mov esi, dword [esp + 0x3f0]
mov edi, dword [esp + 0x3f8]
cmp bl, 2
mov dword [esp + 8], eax
je 0x46db0b
movsd xmm1, qword [esp + 0x402]
movsd xmm0, qword [esp + 0x3fc]
lea eax, [esp + 0x40b]
lea ecx, [esp + 0x83]
movsd qword [esp + 0x7a], xmm1
movsd qword [esp + 0x74], xmm0
push 0x36d
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], eax
mov byte [esp + 0x82], bl
lea edx, [esp + 0x68]
lea ecx, [esp + 0x3f0]
push 0
call fcn.004529a0
add esp, 4
mov eax, dword [esp + 0x3f0]
cmp eax, 2
jne 0x46daff
lea edx, [esp + 0x68]
lea ecx, [esp + 0x3f0]
push 0
call fcn.004529a0
add esp, 4
mov eax, dword [esp + 0x3f0]
cmp eax, 2
jne 0x46daff
lea edx, [esp + 0x68]
lea ecx, [esp + 0x3f0]
push 0
call fcn.004529a0
add esp, 4
mov eax, dword [esp + 0x3f0]
cmp eax, 2
jne 0x46daff
cmp dword [esp + 0x10], 0
je 0x46d4fd
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
shl esi, 4
add esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
jmp 0x46d1a9
mov eax, dword [esp + 0x14]
inc dword [esp + 0x30]
add eax, 0x10
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
je 0x46d4fd
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2bc]
mov ecx, dword [eax + 8]
mov edx, dword [eax]
cmp esi, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], ecx
cmovbe esi, ecx
mov dword [esp + 0x2c0], esi
inc dword [esp + 0x2c4]
test ecx, ecx
je 0x46d484
mov eax, ecx
lea eax, [edx + ecx]
mov edi, edx
mov dword [esp], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
mov eax, edx
jmp 0x46d221
mov eax, edi
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [esp + 4]
mov ebx, eax
inc edi
cmp edi, dword [esp + 0x44]
je 0x46d486
movzx ecx, byte [edi]
test byte [esp], 1
mov al, 1
mov dword [esp], eax
mov dword [esp + 8], ecx
jne 0x46d25b
mov ecx, dword [esp + 0x2dc]
cmp ebx, ecx
jae 0x46da03
mov eax, dword [esp + 0x2d4]
lea ecx, [ebx + ebx*8]
cmp dword [eax + ecx*4 + 0x1c], 0
mov ecx, dword [esp + 8]
setne al
mov dword [esp], eax
mov eax, dword [esp + 0x68]
cmp byte [eax + 4], 1
jne 0x46d26f
cmp byte [esp], 0
jne 0x46d190
test ecx, ecx
je 0x46d2a0
mov edx, dword [esp + 0x3ec]
lea esi, [ecx - 1]
cmp esi, edx
jae 0x46da0d
mov eax, dword [esp + 0x3e4]
mov byte [eax + esi], 1
mov eax, ecx
cmp edx, eax
ja 0x46d2b1
jmp 0x46da14
mov edx, dword [esp + 0x3ec]
xor eax, eax
cmp edx, eax
jbe 0x46da14
mov edx, dword [esp + 0x3e4]
mov byte [edx + eax], 1
mov edx, dword [esp + 0x68]
cmp byte [edx + 7], 0
je 0x46d332
mov edx, ecx
mov dword [esp + 4], ebx
add dl, 0xbf
cmp dl, 0x19
ja 0x46d2e0
mov ebx, ecx
or bl, 0x20
jmp 0x46d2f6
mov edx, ecx
add dl, 0x9f
cmp dl, 0x1a
setb bl
shl bl, 5
xor bl, cl
je 0x46d46b
mov edx, dword [esp + 0x3ec]
movzx esi, bl
dec esi
cmp esi, edx
jae 0x46da0d
mov ecx, edi
mov edi, dword [esp + 0x3e4]
mov byte [edi + esi], 1
mov edi, ecx
movzx esi, bl
cmp edx, esi
jbe 0x46da1d
mov ecx, dword [esp + 0x3e4]
mov ebx, dword [esp + 4]
mov byte [ecx + esi], 1
mov ecx, dword [esp + 0x2dc]
cmp ebx, ecx
jae 0x46da03
mov ecx, dword [esp + 0x2d4]
lea esi, [ebx + ebx*8]
inc dword [esp + 0x18]
mov dword [esp + 4], edi
mov edi, ebx
cmp dword [ecx + esi*4], 0
lea ebx, [ecx + esi*4]
je 0x46d380
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jbe 0x46da32
shl eax, 2
add eax, dword [ebx + 4]
mov ebx, edi
jmp 0x46d3a9
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov ebx, edi
add edx, 0xfffffffc
shl ecx, 3
nop
test ecx, ecx
je 0x46d3b3
mov edi, ebx
mov ebx, dword [esp + 8]
add ecx, 0xfffffff8
lea eax, [edx + 8]
cmp byte [edx + 4], bl
mov ebx, edi
mov edx, eax
jne 0x46d390
mov eax, dword [eax]
test eax, eax
jne 0x46d210
lea edx, [esp + 0x68]
lea ecx, [esp + 0x3f0]
push dword [esp + 0x18]
call fcn.004529a0
add esp, 4
mov eax, dword [esp + 0x3f0]
mov edi, dword [esp + 0x3f4]
cmp eax, 2
jne 0x46da7c
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0xc], 0x51a414
cmp ebx, ecx
jae 0x46da54
mov ecx, dword [esp + 0x2d4]
shl esi, 2
add ecx, esi
mov edx, dword [esp + 8]
push edi
call fcn.004510e0
add esp, 4
mov eax, dword [esp + 0x68]
cmp byte [eax + 7], 0
je 0x46d201
mov ecx, dword [esp + 0x2dc]
cmp ebx, ecx
jae 0x46da54
mov ecx, dword [esp + 8]
mov eax, ecx
add al, 0xbf
cmp al, 0x1a
jae 0x46d441
or cl, 0x20
mov eax, ecx
jmp 0x46d44f
mov eax, ecx
add al, 0x9f
cmp al, 0x1a
setb al
shl al, 5
xor al, cl
add esi, dword [esp + 0x2d4]
movzx edx, al
mov ecx, esi
push edi
call fcn.004510e0
mov eax, edi
add esp, 4
jmp 0x46d210
mov edx, dword [esp + 0x3ec]
xor ebx, ebx
movzx esi, bl
cmp edx, esi
ja 0x46d323
jmp 0x46da1d
mov eax, ebx
mov ecx, dword [esp + 0x2dc]
cmp eax, ecx
jae 0x46da67
mov edi, dword [esp + 0x2d4]
mov ecx, eax
lea ecx, [ecx + ecx*8]
mov edx, dword [edi + ecx*4 + 0x1c]
lea esi, [edi + ecx*4 + 0x14]
cmp edx, dword [edi + ecx*4 + 0x18]
jne 0x46d4bf
mov ecx, esi
call fcn.00459d70
mov edi, dword [esp + 0x2c]
mov edx, dword [esi + 8]
jmp 0x46d4c3
mov edi, dword [esp + 0x2c]
mov eax, dword [esi]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [eax + edx*8], ecx
mov dword [eax + edx*8 + 4], ebx
inc edx
mov dword [esi + 8], edx
mov eax, dword [esp + 0x68]
cmp byte [eax + 5], 0
je 0x46d190
push dword [esp + 0x34]
push edi
lea eax, [esp + 0x74]
push eax
call fcn.00406700
add esp, 0xc
jmp 0x46d190
mov esi, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0xc], 0x51a414
cmp esi, ecx
jae 0x46da71
lea edi, [esi + esi*8]
xor ebx, ebx
shl edi, 2
add edi, dword [esp + 0x2d4]
jmp 0x46d547
movzx edx, bl
mov ecx, edi
push esi
call fcn.004510e0
add esp, 4
inc ebx
cmp ebx, 0x100
je 0x46d598
cmp dword [edi], 0
je 0x46d570
mov ecx, dword [edi + 0xc]
cmp ecx, ebx
jbe 0x46da4c
lea edx, [ebx*4]
add edx, dword [edi + 4]
jmp 0x46d591
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
add ecx, 0xfffffffc
shl eax, 3
nop dword [eax]
test eax, eax
je 0x46d530
add eax, 0xfffffff8
cmp byte [ecx + 4], bl
lea edx, [ecx + 8]
mov ecx, edx
jne 0x46d580
cmp dword [edx], 0
jne 0x46d53e
jmp 0x46d530
mov ecx, dword [esp + 0x2dc]
cmp ecx, 2
jb 0x46da75
mov esi, dword [esp + 0x2d4]
xor edx, edx
add esi, 0x24
nop word cs:[eax + eax]
nop
movzx eax, dx
cmp eax, 0x100
je 0x46d5dd
lea edi, [edx + 1]
mov ecx, esi
push 1
call fcn.004510e0
add esp, 4
mov edx, edi
jmp 0x46d5c0
mov eax, dword [esp + 0x68]
cmp byte [eax + 6], 0
jne 0x46d63c
movzx eax, byte [eax + 4]
dec al
cmp al, 2
jae 0x46d633
lea ecx, [esp + 0x68]
call fcn.004513d0
jmp 0x46d63c
lea edi, [ebx + 4]
lea esi, [esp + 0x3f0]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov dword [ebx + 0x54], eax
movsd qword [ebx + 0x4c], xmm0
mov dword [ebx], 9
lea ecx, [esp + 0x68]
call fcn.00457700
jmp 0x46cd99
lea ecx, [esp + 0x68]
call fcn.00451e20
lea ecx, [esp + 0x68]
call fcn.004512b0
lea eax, [esp + 0x3f1]
push 0xff
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x3ec]
mov eax, dword [esp + 0x3e4]
mov edx, 0xffffff01
xor ebx, ebx
mov byte [esp + 0x3f0], 0
mov edi, ecx
neg ecx
jmp 0x46d68a
mov byte [esp + edx + 0x4f0], bl
inc edx
je 0x46d6c0
lea esi, [ecx + edx]
cmp esi, 0xffffff01
je 0x46da3e
cmp byte [eax + edx + 0xff], 0
je 0x46d680
inc bl
jne 0x46d680
push 0x504438
push 0x2b
push 0x50440c
call fcn.00414ad0
add esp, 0xc
jmp 0x46dafd
lea ecx, [esp + 0x2e2]
push 0x100
lea eax, [esp + 0x3f4]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x68]
cmp byte [eax + 6], 0
jne 0x46d74d
lea eax, [esp + 0x6c]
push eax
call fcn.00406100
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x2cc]
mov ebx, edx
test eax, eax
je 0x46d73f
mov ecx, dword [esp + 0x2d0]
mov ecx, dword [ecx]
push eax
call ecx
add esp, 4
mov ecx, dword [esp + 0x2d0]
cmp dword [ecx + 4], 0
je 0x46d73f
mov eax, dword [esp + 0x2cc]
cmp dword [ecx + 8], 9
jb 0x46d72f
mov eax, dword [eax - 4]
mov ecx, dword [0x56bbf8]
push eax
push 0
push dword [ecx]
call sub.kernel32.dll_HeapFree
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x2d0], ebx
mov eax, dword [esp + 0x2dc]
test eax, eax
je 0x46d78f
mov edx, dword [esp + 0x2d4]
lea eax, [eax + eax*8]
lea esi, [edx + eax*4]
xor eax, eax
nop word [eax + eax]
cmp dword [edx], 0
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0xc]
sete cl
lea eax, [eax + edi*8]
add edx, 0x24
or cl, 2
shl ebx, cl
add eax, ebx
cmp edx, esi
jne 0x46d770
jmp 0x46d791
xor eax, eax
mov dword [esp + 0x2c8], eax
movsd xmm0, qword [esp + 0x2d0]
mov eax, dword [esp + 0x2bc]
mov esi, dword [esp + 0x2c0]
movzx ebx, byte [esp + 0x2e1]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x2d8]
mov dword [esp], eax
mov eax, dword [esp + 0x2c4]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x2c8]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x2e0]
movsd qword [esp + 0x48], xmm0
mov byte [esp + 0x60], al
lea edi, [esp + 0x8a2]
push 0x102
lea eax, [esp + 0x2e6]
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x6c]
call fcn.00457400
cmp dword [esp + 0x3e8], 0
je 0x46d83a
mov eax, dword [0x56bbf8]
push dword [esp + 0x3e4]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp bl, 2
je 0x46dac0
movzx eax, byte [esp + 0x60]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
mov byte [esp + 0x79c], al
movsd qword [esp + 0x794], xmm0
movsd qword [esp + 0x78c], xmm1
movsd qword [esp + 0x784], xmm2
lea eax, [esp + 0x79e]
push 0x102
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
mov ecx, dword [esp + 4]
cmp byte [esp + 0x42], 0
mov dword [esp + 0x778], eax
mov dword [esp + 0x780], ecx
mov dword [esp + 0x77c], esi
mov byte [esp + 0x79d], bl
movzx ebx, byte [esp + 0x79c]
mov byte [esp + 0x18], bl
je 0x46d971
lea eax, [esp + 0x778]
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3f0]
push eax
call fcn.0044f520
add esp, 4
mov esi, dword [esp + 0x3f0]
cmp esi, 4
je 0x46db18
mov eax, dword [esp + 0x3f4]
mov dword [esp], eax
mov eax, dword [esp + 0x3f8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3fc]
mov dword [esp + 4], eax
lea eax, [esp + 0x400]
push 0x11c
push eax
lea edi, [esp + 0x70]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x52c]
movsd xmm0, qword [esp + 0x51c]
movsd xmm1, qword [esp + 0x524]
movsd qword [esp + 0x184], xmm0
movsd qword [esp + 0x18c], xmm1
mov dword [esp + 0x194], eax
lea ecx, [esp + 0x778]
call fcn.004574b0
jmp 0x46d994
mov dword [esp + 8], esi
lea eax, [esp + 0x784]
push 0x11c
push eax
lea edi, [esp + 0x70]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 4
mov ebx, dword [esp + 0x28]
lea eax, [ebx + 0x10]
push 0x130
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x3f0]
mov ch, byte [esp + 0x3f2]
mov edi, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov edx, dword [esp]
mov cl, byte [esp + 0x18]
mov word [ebx + 0x141], ax
mov byte [ebx + 0x143], ch
mov dword [ebx + 0x14c], edi
movsd qword [ebx + 0x144], xmm0
mov dword [ebx], esi
mov dword [ebx + 4], edx
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [ebx + 0xc], esi
mov dword [ebx + 8], edx
mov byte [ebx + 0x140], cl
jmp 0x46cd99
mov dword [esp + 0xc], 0x51a3f4
jmp 0x46da54
mov ecx, 0x5043dc
jmp 0x46da22
mov ecx, 0x5043ec
mov esi, eax
jmp 0x46da22
mov ecx, 0x5043ec
push ecx
push edx
push esi
call fcn.00414b90
add esp, 0xc
jmp 0x46dafd
mov dword [esp + 0xc], 0x51a4f0
mov ebx, eax
jmp 0x46da54
mov dword [esp + 0xc], str._usr_local_cargo_registry_src_github.com_1ecc6299db9ec823_aho_corasick_0.7.18_src_classes.rs
mov ebx, edi
mov ecx, edi
jmp 0x46da54
mov dword [esp + 0xc], 0x51a4f0
push dword [esp + 0xc]
push ecx
push ebx
call fcn.00414b90
add esp, 0xc
jmp 0x46dafd
mov dword [esp + 0xc], 0x51a414
jmp 0x46da3a
mov ebx, esi
jmp 0x46da54
mov ebx, 1
jmp 0x46da54
mov esi, edi
mov dword [esp], eax
mov eax, dword [esp + 0x3f8]
mov dword [esp + 4], eax
lea ecx, [esp + 0x6c]
call fcn.00457400
lea ecx, [esp + 0x2bc]
call fcn.004574b0
cmp dword [esp + 0x3e8], 0
je 0x46dac0
mov eax, dword [0x56bbf8]
push dword [esp + 0x3e4]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp]
mov ebx, dword [esp + 4]
mov dword [esp + 0x3f0], edi
mov dword [esp + 0x3f8], ebx
mov dword [esp + 0x3f4], esi
push 0x51b594
push 0x51a754
lea eax, [esp + 0x3f8]
push eax
push 0x2b
push 0x51a764
call fcn.00414e90
add esp, 0x14
ud2
mov esi, dword [esp + 0x3f4]
jmp 0x46da7e
mov dword [esp], esi
mov esi, dword [esp + 8]
mov dword [esp + 4], edi
jmp 0x46dac0
mov edi, dword [esp + 0x3f4]
mov esi, dword [esp + 0x3f8]
mov ebx, dword [esp + 0x3fc]
lea ecx, [esp + 0x778]
call fcn.004574b0
jmp 0x46dac7