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

Disassembly:
mov ecx, dword [0x6975f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xa4]
cmp eax, dword [ecx + 8]
jbe 0x513326
sub esp, 0x124
mov dword [esp], 0
call sym.main.closeWindows
lea eax, [0x5235c0]
mov dword [esp], eax
call sym.runtime.newobject
mov edi, dword [esp + 4]
mov dword [esp + 0xa8], edi
lea esi, [0x57d934]
mov ecx, 0xd5
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], 0x354
mov dword [esp + 8], 0x354
lea eax, [0x54d563]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x20
call sym.main.f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
nop
lea edx, [0x532f20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x74], eax
mov dword [eax + 4], 0xc
lea ecx, [0x545ed6]
mov dword [eax], ecx
nop
lea ecx, [0x532f20]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x70], eax
mov dword [eax + 4], 9
lea ecx, [0x5452df]
mov dword [eax], ecx
nop
lea ecx, [0x532ea0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [0x6976a8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x512843
mov eax, dword [esp + 0x74]
jmp 0x51284e
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x74]
mov dword [edi], eax
mov dword [esp + 0x6c], ecx
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0xe
lea edx, [0x5468f2]
mov dword [ecx], edx
nop
lea edx, [0x532ea0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x6976a8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x512887
mov eax, dword [esp + 0x74]
jmp 0x512892
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x74]
mov dword [edi], eax
mov dword [esp + 0x68], ecx
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0x10
lea edx, [0x54737e]
mov dword [ecx], edx
nop
lea edx, [0x532ea0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x6976a8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x5128cb
mov eax, dword [esp + 0x74]
jmp 0x5128d6
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x74]
mov dword [edi], eax
mov dword [esp + 0x64], ecx
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0x12
lea edx, [0x547e50]
mov dword [ecx], edx
nop
lea edx, [0x532ea0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x6976a8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x51290f
mov edx, dword [esp + 0x70]
jmp 0x51291a
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x70]
mov dword [edi], edx
mov dword [esp + 0x60], ecx
mov dword [ecx + 0x10], edx
mov dword [ecx + 4], 0x19
lea edx, [0x54ad5b]
mov dword [ecx], edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea edi, [esp + 0xac]
xor eax, eax
call fcn.0046a37f
mov dword [esp + 0xd8], 0x104
mov word [esp + 0xdc], 1
lea ecx, [0x54d1c1]
mov dword [esp], ecx
mov dword [esp + 4], 0x1f
call sym.golang.org_x_sys_windows.UTF16PtrFromString
mov ecx, dword [esp + 8]
mov dword [esp + 0x7c], ecx
mov dword [esp], 0
mov dword [esp + 4], 0
call sym.golang.org_x_sys_windows.UTF16PtrFromString
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 1
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x24], ecx
call sym.golang.org_x_sys_windows.CreateProcess
lea ecx, [0x523680]
mov dword [esp], ecx
call sym.runtime.newobject
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x4c]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov edx, dword [esp + 0x44]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], 0x3000
mov dword [ecx + 0x10], 4
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
mov ecx, dword [esp + 0x44]
test ecx, ecx
jbe 0x51331c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xa4], ecx
lea ecx, [0x523640]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 0xc], edx
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x525cc0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax], 4
mov dword [esp + 0xa0], eax
lea eax, [0x523680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0x20
mov edx, dword [esp + 0xa0]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x535980]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x108], eax
mov dword [esp + 0x9c], eax
lea ecx, [0x523680]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x18
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
nop
lea eax, [0x532ea0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x6976a8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x512bec
mov eax, dword [esp + 0x74]
jmp 0x512bf7
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x74]
mov dword [edi], eax
mov dword [esp + 0x5c], ecx
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0x11
lea eax, [0x5479ee]
mov dword [ecx], eax
lea eax, [0x53da00]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x10c], eax
lea ecx, [0x525bc0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
lea eax, [0x523680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x108]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x1d8
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x53cd80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x11c], eax
lea ecx, [0x525bc0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], eax
lea eax, [0x523680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10c]
mov edx, dword [ecx + 8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0x40
mov edx, dword [esp + 0x8c]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x525c00]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x120], eax
lea ecx, [0x525bc0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], eax
lea eax, [0x523680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov edx, dword [ecx + 0x3c]
mov ebx, dword [esp + 0x10c]
add edx, dword [ebx + 8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x88]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 4
mov edx, dword [esp + 0x84]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x5383a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x110], eax
lea ecx, [0x525bc0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x104], eax
lea eax, [0x523680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov edx, dword [ecx + 0x3c]
mov ebx, dword [esp + 0x10c]
add edx, dword [ebx + 8]
add edx, 4
mov dword [eax + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0x14
mov edx, dword [esp + 0x104]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
lea eax, [0x53eaa0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x114], eax
lea ecx, [0x53ec60]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x118], eax
lea ecx, [0x525bc0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 0x110]
movzx ecx, word [eax]
mov edx, dword [esp + 4]
cmp cx, 0x8664
je 0x512f96
cmp cx, 0x14c
jne 0x51301f
mov eax, dword [esp + 0x118]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], edx
lea ecx, [0x523680]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov ecx, dword [ecx + 0x3c]
mov edx, dword [esp + 0x10c]
add ecx, dword [edx + 8]
add ecx, 0x18
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xf8]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x78
mov ecx, dword [esp + 0xf4]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
mov eax, dword [esp + 0x110]
jmp 0x51301f
mov eax, dword [esp + 0x114]
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], edx
lea ecx, [0x523680]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov ecx, dword [ecx + 0x3c]
mov edx, dword [esp + 0x10c]
add ecx, dword [edx + 8]
add ecx, 0x18
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x100]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x74
mov ecx, dword [esp + 0xfc]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
mov dword [esp + 0xc], 5
call sym.golang.org_x_sys_windows._LazyProc_.Call
mov eax, dword [esp + 0x110]
movzx edx, word [eax]
cmp dx, 0x8664
jne 0x513044
mov ebx, dword [esp + 0x114]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [esp + 0x10c]
add ebx, dword [ebp + 8]
cmp dx, 0x8664
jmp 0x513070
cmp dx, 0x14c
jne 0x513066
mov ebx, dword [esp + 0x118]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [esp + 0x10c]
add ebx, dword [ebp + 8]
cmp dx, 0x8664
jmp 0x513070
cmp dx, 0x8664
mov ebx, 0
mov dword [esp + 0x40], ebx
je 0x51312a
cmp dx, 0x14c
je 0x51308c
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x513211
mov dword [esp], 0
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov byte [eax], 0xb8
mov dword [esp + 0x30], 0
nop
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], edx
cmp ecx, 5
jb 0x5130e2
mov edx, 5
jmp 0x51311a
mov dword [esp], eax
mov dword [esp + 4], 5
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + 1], ebx
mov ebx, dword [esp + 0x40]
jmp 0x513211
mov dword [esp], 0
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov byte [eax], 0x48
cmp ecx, 2
jae 0x513196
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov byte [eax + 1], 0xb8
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
nop
mov edx, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0
cmp ecx, 0xa
jb 0x5131c7
mov edx, 0xa
jmp 0x5131ff
mov dword [esp], eax
mov dword [esp + 4], 0xa
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 8
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, edx
mov edx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [eax + 2], ebx
mov dword [eax + 6], ebp
mov ebx, dword [esp + 0x40]
inc edx
cmp ecx, edx
jae 0x513248
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
mov byte [edx + eax - 1], 0xff
inc edx
cmp ecx, edx
jae 0x513280
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x525b00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x40]
mov byte [edx + eax - 1], 0xe0
test edx, edx
jbe 0x513313
mov dword [esp + 0x3c], edx
mov dword [esp + 0xf0], eax
lea eax, [0x523640]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xf0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call sym.golang.org_x_sys_windows._LazyProc_.Call
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym.golang.org_x_sys_windows.ResumeThread
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call sym.golang.org_x_sys_windows.CloseHandle
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym.golang.org_x_sys_windows.CloseHandle
add esp, 0x124
ret
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.main.main