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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x190
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp], ebx
mov ecx, edi
call fcn.00550b94
sub esp, 4
lea ecx, [esp + 0x80]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
lea ecx, [esp + 0x48]
call fcn.00550bbe
sub esp, 0xc
mov edi, dword [esp + 0x48]
test edi, edi
je 0x4042ac
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x405042
mov dword [esp + 0x6c], edi
mov dword [esp + 0x34], esi
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebx + 8]
movsd xmm0, qword [ebx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call dword [eax + 0x4c]
sub esp, 8
sub edi, eax
sbb esi, edx
mov eax, dword [esp + 0x84]
xor ecx, ecx
sub eax, edi
mov edx, 0
mov dword [esp + 0x40], esi
sbb edx, esi
mov esi, 7
cmp esi, eax
sbb ecx, edx
jae 0x405051
mov esi, dword [esp + 0x80]
lea eax, [esi + edi]
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x34]
movzx eax, byte [ebx + 8]
mov byte [esp + 0x2b], al
mov ecx, dword [ebx]
mov dword [esp + 0x48], str.ExceptionData
mov dword [esp + 0x4c], 0xd
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov dword [esp + 0xb8], ecx
call dword [eax + 0x7c]
sub esp, 8
mov eax, dword [ebx]
mov dword [esp + 0x150], str.FunctionLength
mov dword [esp + 0x154], 0xe
cmp byte [ebx + 8], 0
mov ecx, 0x7fffe
mov edx, 0xffffc
cmove edx, ecx
sete ch
mov cl, 2
sub cl, ch
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x3c]
mov edi, dword [esi + edi]
shl edi, cl
and edi, edx
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x150]
movsd qword [esp], xmm0
mov dword [esp + 8], edi
mov edi, dword [esp + 0x3c]
mov ecx, eax
call dword [edx + 0x20]
sub esp, 0xc
mov ecx, dword [ebx]
mov dword [esp + 0x148], 0x552cd3
mov dword [esp + 0x14c], 7
mov eax, dword [esi + edi]
shr eax, 0x12
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x148]
movsd qword [esp], xmm0
and eax, 3
mov dword [esp + 8], eax
call dword [edx + 0x10]
sub esp, 0xc
mov ecx, dword [ebx]
mov dword [esp + 0x140], str.ExceptionData
mov dword [esp + 0x144], 0xd
mov eax, dword [esi + edi]
shr eax, 0x14
and eax, 1
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x140]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x40]
sub esp, 0xc
mov ecx, dword [ebx]
mov dword [esp + 0x138], str.EpiloguePacked
mov dword [esp + 0x13c], 0xe
mov eax, dword [esi + edi]
mov edi, dword [esp + 0x2c]
shr eax, 0x15
and eax, 1
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x138]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x40]
sub esp, 0xc
cmp byte [ebx + 8], 0
jne 0x40449d
mov ecx, dword [ebx]
mov dword [esp + 0x130], str.Fragment
mov dword [esp + 0x134], 8
mov eax, dword [edi]
shr eax, 0x16
and eax, 1
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x130]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x40]
sub esp, 0xc
mov ecx, dword [ebx]
test dword [edi], 0x200000
mov eax, str.EpilogueScopes
mov edx, str.EpilogueOffset
cmove edx, eax
mov dword [esp + 0x128], edx
mov dword [esp + 0x12c], 0xe
xor edx, edx
movzx ebx, byte [esp + 0x2b]
test bl, bl
sete dl
mov eax, dword [edi]
shl edx, 0x16
add edx, 0x400000
mov dword [esp + 0x30], edx
cmp eax, edx
jae 0x4044e8
mov eax, dword [edi + 4]
jmp 0x4044f7
test bl, bl
je 0x4044f1
shr eax, 0x16
jmp 0x4044f4
shr eax, 0x17
and eax, 0x1f
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x128]
movsd qword [esp], xmm0
movzx eax, ax
mov dword [esp + 8], eax
call dword [edx + 0x18]
sub esp, 0xc
mov eax, dword [edi]
cmp eax, dword [esp + 0x30]
jae 0x404522
movzx eax, word [edi + 6]
jmp 0x404531
cmp byte [esp + 0x2b], 0
je 0x40452e
shr eax, 0x1b
jmp 0x404531
shr eax, 0x1c
movzx edx, al
shl edx, 2
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [esp + 0x120], str.ByteCodeLength
mov dword [esp + 0x124], 0xe
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x120]
movsd qword [esp], xmm0
mov dword [esp + 0x38], edx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call dword [eax + 0x30]
sub esp, 0x10
mov eax, dword [esp + 0x84]
mov dword [esp + 0x44], eax
mov ecx, dword [edi]
xor eax, eax
cmp ecx, dword [esp + 0x30]
setb al
lea eax, [eax*4 + 4]
xor edx, edx
test ecx, 0x200000
jne 0x4045cb
cmp ecx, dword [esp + 0x30]
jae 0x4045ad
mov esi, ecx
mov ecx, dword [edi + 4]
jmp 0x4045c3
cmp byte [esp + 0x2b], 0
je 0x4045bb
mov esi, ecx
shr ecx, 0x16
jmp 0x4045c0
mov esi, ecx
shr ecx, 0x17
and ecx, 0x1f
movzx edx, cx
shl edx, 2
mov ecx, esi
mov ebx, ecx
shl ebx, 0xb
sar ebx, 0x1f
mov esi, ecx
mov ecx, ebx
and ecx, 0xfffffff8
add eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
adc edi, 0
add ecx, dword [esp + 0x44]
adc ebx, 0
add eax, edx
adc edi, 0
sub ecx, eax
sbb ebx, edi
cmp ecx, dword [esp + 0x38]
sbb ebx, 0
jl 0x405065
test esi, 0x200000
mov ebx, dword [esp + 0x34]
jne 0x404657
mov esi, dword [ebx]
mov dword [esp + 0x48], str.Prologue
mov dword [esp + 0x4c], 8
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, esi
call dword [eax + 0x88]
sub esp, 8
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
test eax, 0x200000
jne 0x404673
cmp eax, dword [esp + 0x30]
jae 0x4046a1
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
movzx edx, ax
jmp 0x404684
mov edi, esi
cmp esi, dword [esp + 0x30]
movzx eax, byte [esp + 0x2b]
jae 0x404694
mov ebx, dword [esp + 0x2c]
movzx edi, byte [ebx + 6]
mov eax, 2
jmp 0x4046ce
xor edx, edx
cmp eax, dword [esp + 0x30]
jae 0x4046b3
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
xor edx, edx
shr eax, 0x10
movzx eax, al
mov ecx, 2
jmp 0x40478f
test al, al
mov ebx, dword [esp + 0x2c]
je 0x4046c6
shr edi, 0x1b
jmp 0x4046c9
cmp byte [esp + 0x2b], 0
sete cl
or cl, 0x16
mov edx, eax
shr edx, cl
and edx, 0x1f
cmp byte [esp + 0x2b], 0
je 0x404787
shr eax, 0x1b
jmp 0x40478a
shr edi, 0x1c
mov eax, 1
lea ebx, [ebx + eax*4]
shl edi, 2
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
mov dword [esp + 0x48], str.Prologue
mov dword [esp + 0x4c], 8
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, esi
call dword [eax + 0x88]
sub esp, 8
mov dword [esp + 0x38], edi
mov dword [esp + 0x11c], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x118], ebx
mov edi, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x118]
movsd qword [esp], xmm0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x34]
call fcn.00403bd0
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [edi]
cmp eax, dword [esp + 0x30]
jae 0x404769
movzx eax, word [edi + 4]
test eax, eax
jne 0x40480e
jmp 0x404bd0
cmp byte [esp + 0x2b], 0
je 0x404800
shr eax, 0x16
and eax, 0x1f
test eax, eax
jne 0x40480e
jmp 0x404bd0
shr eax, 0x1c
mov ecx, 1
add edx, ecx
mov edi, dword [esp + 0x2c]
lea ecx, [edi + edx*4]
shl eax, 2
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], ecx
movsd xmm0, qword [esp + 0x108]
movsd qword [esp], xmm0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov ecx, ebx
call fcn.00403bd0
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov esi, dword [edi]
cmp esi, dword [esp + 0x30]
jae 0x4047f4
movzx esi, word [edi + 4]
mov dword [esp + 0x38], 2
jmp 0x404888
cmp byte [esp + 0x2b], 0
je 0x40487a
shr esi, 0x16
jmp 0x40487d
shr eax, 0x17
and eax, 0x1f
test eax, eax
je 0x404bd0
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov dword [esp + 0x48], str.Epilogue
mov dword [esp + 0x4c], 8
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0x88]
sub esp, 8
mov eax, dword [esp + 0x38]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
cmp eax, dword [esp + 0x30]
jae 0x404867
movzx eax, word [ecx + 4]
jmp 0x404ba0
cmp byte [esp + 0x2b], 0
je 0x404b9a
shr eax, 0x16
jmp 0x404b9d
shr esi, 0x17
and esi, 0x1f
mov dword [esp + 0x38], 1
mov edi, dword [ebx]
mov dword [esp + 0x48], str.EpilogueScopes
mov dword [esp + 0x4c], 0xe
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0x88]
sub esp, 8
test esi, esi
je 0x404bc6
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
lea eax, [eax + ecx*4]
mov dword [esp + 0xc0], eax
xor ecx, ecx
cmp byte [esp + 0x2b], 1
mov eax, 0
adc eax, 0x16
mov dword [esp + 0xbc], eax
shl esi, 2
mov dword [esp + 0xc4], esi
jmp 0x404989
mov ecx, dword [ebx + 4]
movzx eax, cx
shr ecx, 0x10
movzx edx, cl
mov ecx, 2
add eax, ecx
shl edx, 2
mov dword [esp + 0xec], edx
lea eax, [ebx + eax*4]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0x34]
cmp byte [ebx + 8], 0
sete cl
add cl, cl
add cl, 0x16
shr esi, cl
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov ecx, ebx
call fcn.00403bd0
sub esp, 0x10
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x8c]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [esp + 0x38]
add ecx, 4
mov esi, dword [esp + 0xc4]
cmp esi, ecx
je 0x404b91
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], ecx
mov esi, dword [eax + ecx]
mov ecx, dword [ebx]
mov dword [esp + 0x48], str.EpilogueScope
mov dword [esp + 0x4c], 0xd
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov dword [esp + 0x44], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, dword [ebx]
mov dword [esp + 0x100], str.StartOffset
mov dword [esp + 0x104], 0xb
mov eax, esi
and eax, 0x3ffff
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x100]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
cmp byte [ebx + 8], 0
mov eax, dword [ebx]
je 0x404a20
mov dword [esp + 0x88], str.EpilogueStartIndex
mov dword [esp + 0x8c], 0x12
mov ecx, 0x16
jmp 0x404a84
mov dword [esp + 0xf8], str.Condition
mov dword [esp + 0xfc], 9
mov ecx, esi
shr ecx, 0x14
mov edx, dword [eax]
movsd xmm0, qword [esp + 0xf8]
movsd qword [esp], xmm0
and ecx, 0xf
mov dword [esp + 8], ecx
mov ecx, eax
call dword [edx + 0x10]
sub esp, 0xc
movzx ecx, byte [ebx + 8]
mov eax, dword [ebx]
mov dword [esp + 0x88], str.EpilogueStartIndex
mov dword [esp + 0x8c], 0x12
xor edx, edx
test cl, cl
sete dl
lea ecx, [edx*2 + 0x16]
mov edi, ebx
mov edx, esi
shr edx, cl
mov ebx, dword [eax]
movsd xmm0, qword [esp + 0x88]
movsd qword [esp], xmm0
mov dword [esp + 8], edx
mov ecx, eax
call dword [ebx + 0x1c]
sub esp, 0xc
cmp byte [edi + 8], 0
mov ecx, 0xf
mov eax, 3
cmove ecx, eax
mov eax, esi
shr eax, 0x12
and eax, ecx
je 0x404af2
mov ecx, dword [edi]
mov dword [esp + 0xf0], str.ReservedBits
mov dword [esp + 0xf4], 0xc
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
mov edi, dword [edi]
mov dword [esp + 0x48], 0x552d8c
mov dword [esp + 0x4c], 7
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0x88]
sub esp, 8
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebx]
test edx, 0x200000
jne 0x404b50
cmp edx, dword [esp + 0x30]
jb 0x404900
mov eax, edx
mov ecx, dword [esp + 0xbc]
shr eax, cl
and eax, 0x1f
jmp 0x404b70
xor eax, eax
cmp edx, dword [esp + 0x30]
jae 0x404b70
mov ecx, dword [ebx + 4]
xor eax, eax
jmp 0x404906
cmp byte [esp + 0x2b], 0
je 0x404b84
shr edx, 0x1b
mov ecx, 1
jmp 0x404911
shr edx, 0x1c
mov ecx, 1
jmp 0x404911
mov edi, dword [esp + 0xb4]
jmp 0x404bc6
shr eax, 0x17
and eax, 0x1f
mov ecx, dword [esp + 0x34]
movsd xmm0, qword [esp + 0x110]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00403bd0
sub esp, 0x10
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x8c]
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebx]
test edx, 0x100000
mov edi, dword [esp + 0x6c]
je 0x405033
test edx, 0x200000
jne 0x404c25
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404c5e
mov eax, dword [ebx + 4]
movzx ecx, ax
shr eax, 0x10
movzx eax, al
add eax, ecx
mov ecx, dword [ebx + eax*4 + 0xc]
mov dword [esp + 0x38], ecx
lea eax, [eax*4 + 8]
add dword [esp + 0x3c], eax
adc dword [esp + 0x40], 0
jmp 0x404ce0
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404c86
movzx eax, byte [ebx + 6]
mov ecx, dword [ebx + eax*4 + 0xc]
mov dword [esp + 0x38], ecx
shl eax, 2
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
adc ecx, 0
add eax, 8
adc ecx, 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
jmp 0x404cf8
mov ch, byte [esp + 0x2b]
test ch, ch
sete al
mov cl, al
or cl, 0x16
mov esi, edx
shr esi, cl
add al, 0x1b
mov edi, edx
mov cl, al
shr edi, cl
and esi, 0x1f
add edi, esi
lea edi, [ebx + edi*4]
add edi, 8
inc esi
jmp 0x404ca3
xor ecx, ecx
cmp byte [esp + 0x2b], 1
adc cl, 0x1b
mov eax, edx
mov ch, byte [esp + 0x2b]
shr eax, cl
lea edi, [ebx + eax*4]
add edi, 8
mov esi, 1
xor eax, eax
cmp ch, 1
mov ecx, 0
adc cl, 0x1b
mov ebx, edx
shr ebx, cl
add ebx, esi
shl ebx, 2
add dword [esp + 0x3c], ebx
adc dword [esp + 0x40], 0
mov ecx, dword [edi]
test edx, 0x200000
mov dword [esp + 0x38], ecx
jne 0x404ce8
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404d0a
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 4]
movzx eax, cx
jmp 0x404cfd
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
jae 0x404d20
mov ecx, dword [ebx + 4]
xor eax, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, 2
jmp 0x404d34
cmp byte [esp + 0x2b], 0
sete cl
or cl, 0x16
mov eax, edx
shr eax, cl
and eax, 0x1f
mov ebx, dword [esp + 0x2c]
cmp byte [esp + 0x2b], 0
je 0x404d2c
shr edx, 0x1b
jmp 0x404d2f
shr edx, 0x1c
mov ecx, 1
add eax, edx
add eax, ecx
mov eax, dword [ebx + eax*4]
lea ecx, [esp + 0xc8]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x168]
call fcn.00403970
sub esp, 0x28
test byte [esp + 0x174], 1
jne 0x404f61
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x70]
call dword [edx + 0x28]
sub esp, 0xc
test byte [esp + 0x78], 1
jne 0x405084
mov edi, dword [esp + 0x34]
mov esi, dword [edi]
mov dword [esp + 0x48], 0x552d94
mov dword [esp + 0x4c], 0x10
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, esi
call dword [eax + 0x88]
sub esp, 8
mov ebx, dword [edi]
mov dword [esp + 0xe0], str.Routine
mov dword [esp + 0xe4], 7
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xcc]
movsd xmm0, qword [esp + 0xd0]
movsd qword [esp], xmm0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
lea ecx, [esp + 0x48]
call fcn.00405160
movzx eax, byte [esp + 0x48]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x49]
cmovne eax, dword [esp + 0x50]
cmovne ecx, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
mov eax, dword [ebx]
movsd xmm0, qword [esp + 0xd8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd qword [esp], xmm0
mov ecx, ebx
call dword [eax + 0x74]
sub esp, 0x10
test byte [esp + 0x48], 1
je 0x404ed9
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [esp + 0x48], str.Parameter
mov dword [esp + 0x4c], 9
mov eax, dword [esp + 0x38]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
test byte [esp + 0x78], 1
mov edi, dword [esp + 0x6c]
je 0x405033
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x70], 0
test ecx, ecx
je 0x405033
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x405033
mov edi, dword [esp + 0x34]
mov esi, dword [edi]
mov dword [esp + 0x48], 0x552d94
mov dword [esp + 0x4c], 0x10
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
mov ecx, esi
call dword [eax + 0x88]
sub esp, 8
mov ecx, dword [edi]
movsd xmm0, qword [esp + 0xa8]
mov dword [esp + 0x48], str.Routine
mov dword [esp + 0x4c], 7
movsd qword [esp + 0x90], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov ecx, dword [edi]
mov dword [esp + 0x48], str.Parameter
mov dword [esp + 0x4c], 9
mov eax, dword [esp + 0x38]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx]
call dword [eax + 0x80]
test edi, edi
sete al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov dword [esp + 4], 1
mov dword [esp], str..xdata_must_be_at_least_8_bytes_in_size
call fcn.005508ee
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
call fcn.00405150
mov dword [esp + 4], 1
mov dword [esp], str.Malformed_unwind_data
call fcn.005508ee
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x160], 0
lea eax, [esp + 0x158]
mov dword [esp], eax
lea esi, [esp + 0x48]
mov ecx, esi
call fcn.00403b90
sub esp, 4
xor eax, eax
test byte [esp + 0x78], 1
je 0x4050d2
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], eax
mov word [esp + 0x188], 0x101
mov eax, dword [esp + 0x188]
mov dword [esp + 0x18], eax
movups xmm0, xmmword [esp + 0x178]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], esi
lea eax, [esp + 0x7c]
mov dword [esp], eax
call fcn.00550906
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x405115
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x68]
mov word [esp + 0xa0], 0x104
mov dword [esp + 0x90], eax
lea eax, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.005508f4
int3