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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov esi, edx
mov edi, ecx
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x24], 0x54dcd8
mov dword [esp + 0x28], 6
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 0xa0], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, dword [edi + 0x38]
mov dword [esp], esi
call fcn.0054a78c
sub esp, 4
mov esi, eax
mov eax, dword [edi + 0x38]
test esi, esi
mov dword [esp + 0x48], edx
je 0x415ebc
movzx ecx, word [esi + 0xc]
cmp ecx, 0xfeff
jbe 0x415ebf
movsx ecx, cx
jmp 0x415ebf
mov ecx, dword [edx + 0xc]
mov dword [esp + 4], ecx
mov dword [esp], eax
lea ecx, [esp + 0x68]
call fcn.0054a774
sub esp, 8
test byte [esp + 0x6c], 1
jne 0x415f27
mov ebx, dword [esp + 0x68]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x12c], esi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x130], ecx
movsd xmm0, qword [esp + 0x12c]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x24]
call fcn.0054a792
sub esp, 0xc
test byte [esp + 0x2c], 1
jne 0x415f7c
movsd xmm0, qword [esp + 0x24]
movaps xmmword [esp + 0x80], xmm0
jmp 0x415f9c
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x90]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x17
ja 0x415ffe
mov dword [esp + 4], 0x18
mov dword [esp], str.Invalid_section_number:
mov ecx, eax
call fcn.0054a3c0
sub esp, 8
test esi, esi
je 0x416021
movzx ecx, word [esi + 0xc]
cmp ecx, 0xfeff
jbe 0x416028
movsx ecx, cx
jmp 0x416028
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x24], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
test ecx, ecx
je 0x415f9c
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x41606e
movzx ecx, word [esi + 0xc]
cmp ecx, 0xfeff
jbe 0x415fb3
movsx ecx, cx
test ebx, ebx
je 0x41607d
mov eax, dword [edi + 0x38]
mov dword [esp + 4], ebx
mov dword [esp], eax
lea ecx, [esp + 0x24]
call fcn.0054a79e
sub esp, 8
movzx eax, byte [esp + 0x2c]
mov dword [esp + 0x3c], edi
test al, 1
mov dword [esp + 0x54], esi
mov dword [esp + 0x94], ebx
jne 0x416048
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
jmp 0x41613e
movsd xmm0, qword [0x54dd04]
movsd qword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.Invalid_section_number:]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x18
test esi, esi
jne 0x415f64
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
mov ecx, eax
call fcn.0054a3f6
sub esp, 4
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x4160b7
mov byte [ecx], 0xa
inc dword [eax + 0x10]
jmp 0x4160d0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x24], 0
test ecx, ecx
je 0x41612e
mov dword [esp + 0x50], 0
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x416136
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x415fbb
movzx eax, byte [esp + 0x2c]
and al, 0xfe
mov byte [esp + 0x2c], al
test ecx, ecx
je 0x416441
cmp ecx, 0xffffffff
je 0x41642c
cmp ecx, 0xfffffffe
jne 0x416456
mov dword [esp + 0x24], str.IMAGE_SYM_DEBUG
mov dword [esp + 0x28], 0xf
jmp 0x415fd6
mov dword [esp + 4], 1
mov dword [esp], 0x54d198
mov ecx, eax
call fcn.0054a3c0
sub esp, 8
mov eax, dword [edi + 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 8]
je 0x4160e3
call fcn.0054a3b4
xor eax, eax
test byte [esp + 0x6c], 1
je 0x4160f8
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], 0
mov dword [esp + 0x30], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.00407790
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x417279
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x417279
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x124], 0x54d602
mov dword [esp + 0x128], 4
movaps xmm0, xmmword [esp + 0x80]
movlps qword [esp + 0x134], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x134]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x124]
movsd qword [esp], xmm0
call dword [eax + 0x74]
sub esp, 0x10
mov edi, dword [esp + 0x54]
test edi, edi
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x11c], 0x54dd0d
mov dword [esp + 0x120], 5
mov eax, edi
mov ebx, dword [esp + 0x48]
cmove eax, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [eax + 8]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x11c]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
mov esi, dword [esi + 0x20]
test edi, edi
je 0x4161f5
movzx eax, word [edi + 0xc]
cmp eax, 0xfeff
jbe 0x4161ef
cwde
mov edi, dword [esp + 0x48]
jmp 0x4161fa
mov eax, dword [ebx + 0xc]
mov edi, ebx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], 0x54d5f3
mov dword [esp + 0x34], 7
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.004176d0
movzx eax, byte [esp + 0x24]
mov ecx, eax
shr ecx, 1
test al, 1
lea edx, [esp + 0x25]
mov eax, dword [esp + 0x2c]
cmove eax, edx
cmovne ecx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, esi
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x24], 1
je 0x416298
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov ecx, dword [esp + 0x54]
lea edx, [ecx + 0xe]
lea eax, [edi + 0x10]
test ecx, ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x20]
cmove edx, eax
mov dword [esp + 0x98], edx
movzx ebx, byte [edx]
and bl, 0xf
mov edx, 0x54de48
movzx eax, bl
cmp bl, 0xf
je 0x4162cf
mov edx, dword [eax*4 + 0x54fb80]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x24], str.BaseType
mov dword [esp + 0x28], 8
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xac]
sub esp, 0x18
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x98]
mov dh, byte [eax]
mov dl, dh
shr dl, 4
mov esi, 0x54de68
movzx eax, dl
cmp dh, 0x10
mov ebx, dword [esp + 0x54]
jb 0x41635d
dec dl
cmp dl, 3
jae 0x4163b6
movzx edx, dl
mov esi, dword [edx*4 + 0x54fbbc]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x24], str.ComplexType
mov dword [esp + 0x28], 0xb
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xac]
sub esp, 0x18
jmp 0x4163f4
mov dword [esp + 0x24], str.ComplexType
mov dword [esp + 0x28], 0xb
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
lea edx, [ebx + 0x10]
lea eax, [edi + 0x12]
test ebx, ebx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x20]
cmove edx, eax
mov dword [esp + 0x50], edx
movzx eax, byte [edx]
cmp eax, 0x6b
ja case.0x41641b.19
mov edx, 0x54dedc
jmp dword [eax*4 + 0x54ff70]
mov edx, 0x54def0
jmp case.0x41641b.0
mov dword [esp + 0x24], str.IMAGE_SYM_ABSOLUTE
mov dword [esp + 0x28], 0x12
jmp 0x415fd6
mov dword [esp + 0x24], str.IMAGE_SYM_UNDEFINED
mov dword [esp + 0x28], 0x13
jmp 0x415fd6
mov dword [esp + 0x24], 0x54e276
mov dword [esp + 0x28], 0
jmp 0x415fd6
mov edx, 0x54e044
jmp case.0x41641b.0
mov edx, 0x54e080
jmp case.0x41641b.0
mov edx, 0x54dfe0
jmp case.0x41641b.0
mov edx, 0x54e0d0
jmp case.0x41641b.0
mov edx, 0x54e0a8
jmp case.0x41641b.0
mov edx, 0x54dfa4
jmp case.0x41641b.0
mov edx, 0x54df04
jmp case.0x41641b.0
mov edx, 0x54df2c
jmp case.0x41641b.0
mov edx, 0x54e094
jmp case.0x41641b.0
mov edx, 0x54dfcc
jmp case.0x41641b.0
mov edx, 0x54e058
jmp case.0x41641b.0
mov edx, 0x54df40
jmp case.0x41641b.0
mov edx, 0x54dfb8
jmp case.0x41641b.0
mov edx, 0x54df18
jmp case.0x41641b.0
mov edx, 0x54e0bc
jmp case.0x41641b.0
mov edx, 0x54df54
jmp case.0x41641b.0
mov edx, 0x54df68
jmp case.0x41641b.0
mov edx, 0x54dff4
jmp case.0x41641b.0
mov edx, 0x54e008
jmp case.0x41641b.0
mov edx, 0x54df90
jmp case.0x41641b.0
mov dword [esp + 0x24], 0x54deb8
mov dword [esp + 0x28], 0xc
movzx eax, al
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
jmp 0x4165db
mov edx, 0x54df7c
jmp case.0x41641b.0
mov edx, 0x54e030
jmp case.0x41641b.0
mov edx, 0x54e01c
jmp case.0x41641b.0
mov edx, 0x54e06c
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x24], 0x54deb8
mov dword [esp + 0x28], 0xc
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], esi
movzx eax, al
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xac]
sub esp, 0x18
lea esi, [ebx + 0x11]
lea eax, [edi + 0x13]
test ebx, ebx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x114], str.AuxSymbolCount
mov dword [esp + 0x118], 0xe
cmove esi, eax
movzx eax, byte [esi]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x114]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x10]
sub esp, 0xc
mov dword [esp + 0x58], esi
cmp byte [esi], 0
je 0x417279
mov dword [esp + 0x80], 0
jmp 0x416672
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x80]
inc ecx
mov eax, dword [esp + 0x58]
movzx eax, byte [eax]
mov dword [esp + 0x80], ecx
cmp ecx, eax
jae 0x417279
mov eax, dword [esp + 0x50]
movzx eax, byte [eax]
cmp eax, 0x66
jle 0x416840
cmp eax, 0x69
je 0x416eb0
cmp eax, 0x6b
jne 0x416a6b
mov eax, edi
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x38]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.0054a7b6
sub esp, 8
mov dword [esp + 0xa4], eax
xor ebx, ebx
cmp dword [esi + 0x18], 0
sete bl
call fcn.0054ab6a
lea esi, [ebx*2 + 0x12]
imul esi, dword [esp + 0x80]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x24], str.AuxCLRToken
mov dword [esp + 0x28], 0xb
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 0x4c], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xbc], str.AuxType
mov dword [esp + 0xc0], 7
mov ebx, dword [esp + 0xa4]
movzx eax, byte [ebx + esi]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xbc]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x10]
sub esp, 0xc
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xb4], 0x54d184
mov dword [esp + 0xb8], 8
movzx eax, byte [ebx + esi + 1]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xb4]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x10]
sub esp, 0xc
mov eax, dword [edi + 0x20]
mov dword [esp + 0x5c], eax
mov edx, dword [ebx + esi + 2]
mov ecx, edi
call fcn.00417510
mov ecx, dword [ebx + esi + 2]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x30], str.SymbolTableIndex
mov dword [esp + 0x34], 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.00417790
movzx eax, byte [esp + 0x24]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x25]
cmove eax, edx
cmovne ecx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x24], 1
je 0x41682c
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov ecx, dword [esp + 0x4c]
jmp 0x416644
cmp eax, 2
je 0x4168a7
cmp eax, 3
jne 0x4170a0
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.0054a7b6
sub esp, 8
xor ecx, ecx
cmp dword [esi + 0x18], 0
mov edi, eax
sete cl
lea esi, [ecx*2 + 0x12]
imul esi, dword [esp + 0x80]
call fcn.0054ab6a
test ebx, ebx
je 0x416a79
movzx eax, word [edi + esi + 0xc]
mov dword [esp + 0x4c], eax
jmp 0x416a8c
mov eax, dword [esp + 0x98]
movzx eax, byte [eax]
test al, 0xf
jne 0x416e52
cmp al, 0x20
jne 0x416e52
test ebx, ebx
je 0x416e47
movzx eax, word [ebx + 0xc]
cmp eax, 0xfeff
ja 0x416e92
test eax, eax
jle 0x416e52
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.0054a7b6
sub esp, 8
mov dword [esp + 0x5c], eax
xor ebx, ebx
cmp dword [esi + 0x18], 0
sete bl
call fcn.0054ab6a
lea edi, [ebx*2 + 0x12]
mov ebx, dword [esp + 0x54]
imul edi, dword [esp + 0x80]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], str.AuxFunctionDef
mov dword [esp + 0x28], 0xe
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0x7c]
sub esp, 8
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x10c], str.TagIndex
mov dword [esp + 0x110], 8
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + edi]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x10c]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x104], str.TotalSize
mov dword [esp + 0x108], 9
mov eax, dword [esi + edi + 4]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0x104]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov eax, dword [esi + edi + 8]
mov dword [esp + 0x24], str.PointerToLineNumber
mov dword [esp + 0x28], 0x13
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov eax, dword [esi + edi + 0xc]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x24], str.PointerToNextFunction
mov dword [esp + 0x28], 0x15
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
jmp 0x41707e
cmp eax, 0x67
jne 0x4170a0
jmp 0x417137
movzx eax, word [edi + esi + 0xc]
movzx ecx, word [edi + esi + 0x10]
shl ecx, 0x10
or ecx, eax
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x24], str.AuxSectionDef
mov dword [esp + 0x28], 0xd
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 0x5c], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0xec], 0x54e1d7
mov dword [esp + 0xf0], 6
mov eax, dword [edi + esi]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xec]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x20]
sub esp, 0xc
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0xe4], 0x54d669
mov dword [esp + 0xe8], 0xf
movzx eax, word [edi + esi + 4]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xe4]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x18]
sub esp, 0xc
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0xdc], str.LineNumberCount
mov dword [esp + 0xe0], 0xf
movzx eax, word [edi + esi + 6]
mov edx, dword [ecx]
movsd xmm0, qword [esp + 0xdc]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
call dword [edx + 0x18]
sub esp, 0xc
mov ecx, dword [ebx + 0x20]
mov eax, dword [edi + esi + 8]
mov dword [esp + 0x24], str.Checksum
mov dword [esp + 0x28], 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0xd4], str.Number
mov dword [esp + 0xd8], 6
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0xd4]
movsd qword [esp], xmm0
mov edx, dword [esp + 0x4c]
mov dword [esp + 8], edx
call dword [eax + 0x1c]
sub esp, 0xc
mov ecx, dword [ebx + 0x20]
movzx edx, byte [edi + esi + 0xe]
movzx eax, dl
dec dl
cmp dl, 6
ja 0x416c5f
movzx edx, dl
mov edx, dword [edx*4 + 0x54fbd8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x24], str.Selection
mov dword [esp + 0x28], 9
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xac]
sub esp, 0x18
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x416cac
jmp 0x416640
mov dword [esp + 0x24], str.Selection
mov dword [esp + 0x28], 9
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov eax, dword [esp + 0x94]
test eax, eax
je 0x416640
test byte [eax + 0x25], 0x10
je 0x416640
cmp byte [edi + esi + 0xe], 5
jne 0x416640
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x38]
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], esi
mov dword [esp], eax
lea ecx, [esp + 0x78]
call fcn.0054a774
sub esp, 8
test byte [esp + 0x7c], 1
jne 0x4172ac
mov eax, dword [esp + 0x78]
test eax, eax
je 0x416e0d
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x38]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x30]
call fcn.0054a79e
sub esp, 8
movzx eax, byte [esp + 0x38]
test al, 1
jne 0x4172f7
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x20]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xb0], esi
mov dword [esp + 0x40], str.AssocSection
mov dword [esp + 0x44], 0xc
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
lea eax, [esp + 0xb0]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.004176d0
movzx eax, byte [esp + 0x24]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x25]
cmove eax, edx
cmovne ecx, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov eax, dword [ebx]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov ecx, ebx
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x24], 1
je 0x416dc8
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
test byte [esp + 0x38], 1
je 0x416de4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
test ecx, ecx
je 0x416de4
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x7c], 1
je 0x416640
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
test ecx, ecx
je 0x416640
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x416640
movzx eax, byte [esp + 0x38]
and al, 0xfe
mov byte [esp + 0x38], al
test esi, esi
je 0x41710d
cmp esi, 0xffffffff
je 0x4170f8
cmp esi, 0xfffffffe
jne 0x417122
mov dword [esp + 0x30], str.IMAGE_SYM_DEBUG
mov dword [esp + 0x34], 0xf
jmp 0x416d15
mov eax, dword [edi + 0xc]
test eax, eax
jg 0x4168e0
test ebx, ebx
je 0x416e67
movzx eax, word [ebx + 0xc]
cmp eax, 0xfeff
ja 0x416e92
test eax, eax
jne 0x416e7b
jmp 0x416e6e
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x416e7b
mov eax, dword [esp + 0x9c]
cmp dword [eax + 8], 0
je 0x416eb0
test ebx, ebx
je 0x41708f
movzx eax, word [ebx + 0xc]
cmp eax, 0xff00
jb 0x4170a0
cwde
cmp eax, 0xffffffff
jne 0x4170a0
jmp 0x41684e
mov eax, edi
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x38]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.0054a7b6
sub esp, 8
xor ecx, ecx
cmp dword [esi + 0x18], 0
mov ebx, eax
sete cl
lea esi, [ecx*2 + 0x12]
imul esi, dword [esp + 0x80]
call fcn.0054ab6a
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x24], str.AuxWeakExternal
mov dword [esp + 0x28], 0xf
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 0x4c], ecx
call dword [eax + 0x7c]
sub esp, 8
mov ecx, edi
mov edi, dword [edi + 0x20]
mov edx, dword [ebx + esi]
call fcn.00417510
mov ecx, dword [ebx + esi]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x30], str.Linked
mov dword [esp + 0x34], 6
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.00417790
movzx eax, byte [esp + 0x24]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x25]
cmove eax, edx
cmovne ecx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0xb4]
sub esp, 0x18
test byte [esp + 0x24], 1
je 0x416fc5
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebx + esi + 4]
lea edx, [eax - 1]
cmp edx, 3
ja 0x417038
mov edx, dword [eax*4 + 0x54fbc4]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x24], str.Search
mov dword [esp + 0x28], 6
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xac]
sub esp, 0x18
jmp 0x417076
mov dword [esp + 0x24], str.Search
mov dword [esp + 0x28], 6
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0xa8]
sub esp, 0x10
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x416654
mov eax, dword [edi + 0xc]
cmp eax, 0xffffffff
je 0x41684e
nop dword [eax + eax]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x90]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x1c
ja 0x4170da
mov dword [esp + 4], 0x1d
mov dword [esp], str._unhandled_auxiliary_record__n
mov ecx, eax
call fcn.0054a3c0
sub esp, 8
jmp 0x416654
movups xmm0, xmmword [0x54e227]
movups xmmword [ecx + 0xd], xmm0
movups xmm0, xmmword [str._unhandled_auxiliary_record__n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x1d
jmp 0x416654
mov dword [esp + 0x30], str.IMAGE_SYM_ABSOLUTE
mov dword [esp + 0x34], 0x12
jmp 0x416d15
mov dword [esp + 0x30], str.IMAGE_SYM_UNDEFINED
mov dword [esp + 0x34], 0x13
jmp 0x416d15
mov dword [esp + 0x30], 0x54e276
mov dword [esp + 0x34], 0
jmp 0x416d15
mov esi, dword [esp + 0x3c]
mov eax, edi
mov edi, dword [esi + 0x38]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov ecx, edi
call fcn.0054a7b6
sub esp, 8
mov dword [esp + 0x50], eax
xor ebx, ebx
cmp dword [edi + 0x18], 0
sete bl
call fcn.0054ab6a
lea edi, [ebx*2 + 0x12]
imul edi, dword [esp + 0x80]
add edi, dword [esp + 0x50]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x24], str.AuxFileRecord
mov dword [esp + 0x28], 0xd
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call dword [eax + 0x7c]
sub esp, 8
mov eax, dword [esp + 0x58]
movzx eax, byte [eax]
mov ecx, dword [esi + 0x38]
xor edx, edx
cmp dword [ecx + 0x18], 0
sete dl
lea ebx, [edx*2 + 0x12]
imul ebx, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
mov edi, dword [esi + 0x20]
mov dword [esp + 0xfc], 0x54e1be
mov dword [esp + 0x100], 8
mov dword [esp + 0x24], 0x54e1c7
mov dword [esp + 0x28], 1
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 8], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.0054ab10
sub esp, 0xc
inc eax
mov ecx, dword [esp + 0x34]
cmp eax, ecx
cmovae eax, ecx
mov edx, ecx
sub edx, ebx
add edx, eax
cmp ecx, edx
cmovb edx, ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0xf4]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0xfc]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0x74]
sub esp, 0x10
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
call dword [eax + 0x80]
test byte [esp + 0x6c], 1
je 0x417295
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x68], 0
test ecx, ecx
je 0x417295
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x80]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x78]
mov dword [esp + 0x78], 0
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
call fcn.0054aa3e
mov dword [esp + 0xd0], edx
mov dword [esp + 0xcc], eax
movsd xmm0, qword [esp + 0xcc]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0xac]
mov dword [esp], eax
call fcn.0052c4c0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
call fcn.0054aa3e
mov dword [esp + 0xc8], edx
mov dword [esp + 0xc4], eax
movsd xmm0, qword [esp + 0xc4]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0xa8]
mov dword [esp], eax
call fcn.0052c4c0
int3