Function at 0x404250
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.0054f5fc
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.0054f626
sub esp, 0xc
mov edi, dword [esp + 0x48]
test edi, edi
je 0x4042bc
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x405074
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 0x405083
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], 0x550d03
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 0x4044ad
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 0x4044f9
movzx eax, word [edi + 4]
jmp 0x404508
test bl, bl
je 0x404502
shr eax, 0x16
jmp 0x404505
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 0x404533
movzx eax, word [edi + 6]
jmp 0x404542
cmp byte [esp + 0x2b], 0
je 0x40453f
shr eax, 0x1b
jmp 0x404542
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 0x4045dc
cmp ecx, dword [esp + 0x30]
jae 0x4045be
mov esi, ecx
mov ecx, dword [edi + 4]
jmp 0x4045d4
cmp byte [esp + 0x2b], 0
je 0x4045cc
mov esi, ecx
shr ecx, 0x16
jmp 0x4045d1
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 0x405097
test esi, 0x200000
mov ebx, dword [esp + 0x34]
jne 0x404668
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 0x404684
cmp eax, dword [esp + 0x30]
jae 0x4046b2
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
movzx edx, ax
jmp 0x404695
mov edi, esi
cmp esi, dword [esp + 0x30]
movzx eax, byte [esp + 0x2b]
jae 0x4046a5
mov ebx, dword [esp + 0x2c]
movzx edi, byte [ebx + 6]
mov eax, 2
jmp 0x4046df
xor edx, edx
cmp eax, dword [esp + 0x30]
jae 0x4046c4
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
xor edx, edx
shr eax, 0x10
movzx eax, al
mov ecx, 2
jmp 0x4047a2
test al, al
mov ebx, dword [esp + 0x2c]
je 0x4046d7
shr edi, 0x1b
jmp 0x4046da
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 0x40479a
shr eax, 0x1b
jmp 0x40479d
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.00403bc0
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [edi]
cmp eax, dword [esp + 0x30]
jae 0x40477b
movzx eax, word [edi + 4]
test ax, ax
jne 0x404827
jmp 0x404bf0
cmp byte [esp + 0x2b], 0
je 0x404818
shr eax, 0x16
and eax, 0x1f
test ax, ax
jne 0x404827
jmp 0x404bf0
shr eax, 0x1c
mov ecx, 1
mov edi, dword [esp + 0x2c]
lea ecx, [edi + ecx*4]
lea ecx, [ecx + 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.00403bc0
sub esp, 0x10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov esi, dword [edi]
cmp esi, dword [esp + 0x30]
jae 0x404808
movzx esi, word [edi + 4]
mov dword [esp + 0x38], 2
jmp 0x4048a1
cmp byte [esp + 0x2b], 0
je 0x404893
shr esi, 0x16
jmp 0x404896
shr eax, 0x17
and eax, 0x1f
test ax, ax
je 0x404bf0
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 0x404880
movzx eax, word [ecx + 4]
jmp 0x404bc0
cmp byte [esp + 0x2b], 0
je 0x404bba
shr eax, 0x16
jmp 0x404bbd
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 0x404be6
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 0x4049aa
mov eax, dword [ebx + 4]
movzx edx, ax
shr eax, 0x10
movzx eax, al
mov ecx, 2
lea ecx, [ebx + ecx*4]
lea ecx, [ecx + edx*4]
shl eax, 2
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
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.00403bc0
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 0x404bb1
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 0x404a40
mov dword [esp + 0x88], str.EpilogueStartIndex
mov dword [esp + 0x8c], 0x12
mov ecx, 0x16
jmp 0x404aa4
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 0x404b12
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], 0x550dbc
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 eax, dword [ebx]
test eax, 0x200000
jne 0x404b70
cmp eax, dword [esp + 0x30]
jb 0x404920
mov edx, eax
mov ecx, dword [esp + 0xbc]
shr edx, cl
and edx, 0x1f
jmp 0x404b90
xor edx, edx
cmp eax, dword [esp + 0x30]
jae 0x404b90
mov eax, dword [ebx + 4]
xor edx, edx
jmp 0x404926
cmp byte [esp + 0x2b], 0
je 0x404ba4
shr eax, 0x1b
mov ecx, 1
jmp 0x404931
shr eax, 0x1c
mov ecx, 1
jmp 0x404931
mov edi, dword [esp + 0xb4]
jmp 0x404be6
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.00403bc0
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 0x405065
test edx, 0x200000
jne 0x404c54
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404c8d
mov ecx, dword [ebx + 4]
movzx eax, cx
shr ecx, 0x10
movzx ecx, cl
lea edx, [ebx + eax*4]
mov edx, dword [edx + ecx*4 + 0xc]
mov dword [esp + 0x38], edx
add eax, 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 0x404d10
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404cb6
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 0x404d28
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
lea eax, [ebx + esi*4]
lea edi, [eax + edi*4]
add edi, 8
inc esi
jmp 0x404cd3
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 0x404d18
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jae 0x404d3a
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 4]
movzx eax, cx
jmp 0x404d2d
cmp edx, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
jae 0x404d50
mov ecx, dword [ebx + 4]
xor eax, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, 2
jmp 0x404d64
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 0x404d5c
shr edx, 0x1b
jmp 0x404d5f
shr edx, 0x1c
mov ecx, 1
lea ecx, [ebx + ecx*4]
lea eax, [ecx + eax*4]
mov eax, dword [eax + edx*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 + 0x158]
call fcn.00403970
sub esp, 0x28
test byte [esp + 0x164], 1
jne 0x404f93
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
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 0x4050b6
mov edi, dword [esp + 0x34]
mov esi, dword [edi]
mov dword [esp + 0x48], 0x550dc4
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.00405180
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 0x404f0b
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 0x405065
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x70], 0
test ecx, ecx
je 0x405065
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x405065
mov edi, dword [esp + 0x34]
mov esi, dword [edi]
mov dword [esp + 0x48], 0x550dc4
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.0054f33e
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
call fcn.00405170
mov dword [esp + 4], 1
mov dword [esp], str.Malformed_unwind_data
call fcn.0054f33e
xorps xmm0, xmm0
movsd qword [esp + 0x168], xmm0
mov dword [esp + 0x170], 0
lea eax, [esp + 0x168]
mov dword [esp], eax
lea esi, [esp + 0x48]
mov ecx, esi
call fcn.00403b80
sub esp, 4
xor eax, eax
test byte [esp + 0x78], 1
je 0x4050fa
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.0054f356
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x40513d
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.0054f344
int3