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

Disassembly:
mov ecx, dword [0x674284]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xbc]
cmp eax, dword [ecx + 8]
jbe 0x5014d0
sub esp, 0x13c
lea edi, [esp + 0x100]
xor eax, eax
call fcn.004695e9
lea edi, [esp + 0x94]
call fcn.004695d5
lea ecx, [esp + 0x94]
mov dword [esp + 0x10c], ecx
call sym.runtime.rand32
mov ecx, dword [esp]
mov dword [esp + 0x108], ecx
xor eax, eax
jmp 0x500dd3
mov ecx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x144]
cmp ecx, eax
jle 0x500e6c
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x140]
lea edx, [ecx + eax*8]
mov ebx, dword [edx]
mov dword [esp + 0x80], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x40], edx
lea ebp, [0x5290c0]
mov dword [esp], ebp
lea esi, [esp + 0x100]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call sym.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp eax, 0xfffffffe
jle 0x500dcc
mov dword [esp + 0x64], eax
lea eax, [0x5290c0]
mov dword [esp], eax
lea ecx, [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], edx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
dec ecx
mov dword [eax], ecx
jmp 0x500dcc
xor eax, eax
jmp 0x500e7e
mov edx, dword [esp + 0x6c]
lea eax, [edx + 1]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x150]
cmp edx, eax
jle 0x500f13
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x14c]
lea edx, [ecx + eax*8]
mov ebx, dword [edx]
mov dword [esp + 0x7c], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x3c], edx
lea ebp, [0x5290c0]
mov dword [esp], ebp
lea esi, [esp + 0x100]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call sym.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp eax, 0xfffffff8
jle 0x500e70
mov dword [esp + 0x60], eax
lea eax, [0x5290c0]
mov dword [esp], eax
lea ecx, [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
add ecx, 0xfffffffc
mov dword [eax], ecx
jmp 0x500e70
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x500f32
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x150]
mov ebx, eax
mov eax, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], esi
cmp edx, eax
jle 0x501022
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x14c]
lea edx, [ecx + eax*8]
mov ebx, dword [edx]
mov dword [esp + 0x78], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x38], edx
lea ebp, [0x5290c0]
mov dword [esp], ebp
lea esi, [esp + 0x100]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call sym.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
cmp dword [eax], 0xfffffffb
je 0x500f9d
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x70]
jmp 0x500f1d
lea eax, [0x5290c0]
mov dword [esp], eax
lea ecx, [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x78]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jb 0x500fe3
mov esi, dword [esp + 0x70]
mov ebp, ecx
jmp 0x501015
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x528140]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
mov dword [esi + eax*4 - 4], ecx
jmp 0x500f1d
xor eax, eax
xor ebp, ebp
xor edi, edi
xor eax, eax
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x84], eax
xor eax, eax
mov dword [esp + 0x50], eax
xor eax, eax
jmp 0x501080
inc ebp
mov dword [esp + 0x74], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0x144]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x70]
mov edi, edx
mov edx, dword [esp + 0x150]
mov edx, eax
mov eax, ebp
mov ebp, edx
mov edx, dword [esp + 0x150]
mov dword [esp + 0x2c], ebp
cmp ecx, eax
jle 0x501205
mov dword [esp + 0x58], eax
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x140]
lea edx, [ecx + eax*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
lea ebp, [0x5290c0]
mov dword [esp], ebp
lea esi, [esp + 0x100]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call sym.runtime.mapaccess2_faststr
movzx eax, byte [esp + 0x14]
test al, al
je 0x5011e1
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
jl 0x5011bd
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x2c]
inc ecx
mov edx, dword [esp + 0x30]
cmp edx, ecx
jb 0x5010f6
mov ebx, dword [esp + 0x74]
jmp 0x501130
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x528140]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ebx, eax
mov edx, edi
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
mov ebp, dword [esp + 0x58]
mov dword [ebx + ecx*4 - 4], ebp
mov esi, dword [esp + 0x4c]
inc esi
mov edi, dword [esp + 0x50]
cmp edi, esi
jae 0x5011a9
mov dword [esp + 0x90], ebx
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x528140]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x84], eax
mov edi, ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [ecx + esi*4 - 4], eax
mov eax, dword [esp + 0x2c]
jmp 0x501047
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x84]
jmp 0x501047
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x84]
jmp 0x501047
lea eax, [0x528140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
lea ecx, [0x528140]
mov dword [esp], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x2c]
xor ebx, ebx
jmp 0x50125a
lea ebp, [edx + 1]
mov dword [ecx + ebx*4], ebp
inc ebx
cmp ebx, edx
jl 0x501253
mov dword [esp + 0x88], eax
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov edi, 1
xor edi, edi
mov dword [esp + 0x54], edi
mov edi, 1
jmp 0x5012b3
mov edi, dword [esp + 0x8c]
mov dword [edi + edx*4], ebp
inc edx
mov ebp, dword [esp + 0x88]
mov dword [ebp + eax*4], edx
mov edx, dword [esp + 0x50]
mov eax, ebp
mov ecx, edi
mov edx, esi
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
movzx edi, byte [esp + 0x23]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5012cb
mov edi, dword [esp + 0x54]
xor edi, edi
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
mov edi, dword [esp + 0x54]
jmp 0x5012df
mov ebx, dword [esp + 0x54]
inc ebx
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
mov edi, ebx
mov ebx, dword [esp + 0x84]
cmp edi, edx
jge 0x501384
mov dword [esp + 0x54], edi
xor eax, eax
lea edi, [esp + 0x11c]
call fcn.004695e8
lea ecx, [sym.internal_diff.tgs.func1]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], edx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x130], ebp
mov dword [esp + 0x134], esi
mov dword [esp + 0x12c], ebx
mov esi, dword [esp + 0x54]
mov dword [esp + 0x138], esi
mov dword [esp], edx
lea ecx, [esp + 0x11c]
mov dword [esp + 4], ecx
call sym.sort.Search
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x5014ca
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x84]
mov ebp, dword [ebx + eax*4]
mov esi, dword [esp + 0x2c]
cmp esi, edx
ja 0x501286
jmp 0x5014c1
xor ecx, ecx
xor esi, esi
jmp 0x50138d
inc ecx
mov esi, edi
cmp ecx, edx
jge 0x50139c
mov edi, dword [eax + ecx*4]
cmp esi, edi
jl 0x50138a
mov edi, esi
jmp 0x50138a
mov dword [esp + 0x44], esi
lea eax, [0x52ec80]
mov dword [esp], eax
lea eax, [esi + 2]
mov dword [esp + 0x34], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0x44]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x34]
cmp ecx, edx
jae 0x5014b8
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x8c], ebx
lea ebp, [ebx + eax*8 + 8]
mov edi, dword [esp + 0x144]
mov dword [ebp], edi
mov edi, dword [esp + 0x150]
mov dword [ebp + 4], edi
mov ecx, dword [esp + 0x2c]
lea ebp, [ecx - 1]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x24]
jmp 0x50140f
dec ebp
mov edi, dword [esp + 0x88]
test ebp, ebp
jl 0x50146f
cmp ebp, ecx
jae 0x5014b1
lea edi, [edi + ebp*4]
cmp dword [edi], eax
jne 0x501407
mov edi, dword [esp + 0x4c]
cmp ebp, edi
jae 0x5014a8
mov edi, dword [esp + 0x84]
mov edi, dword [edi + ebp*4]
cmp ecx, edi
jle 0x501407
mov ebx, dword [esp + 0x74]
mov ebx, dword [ebx + ebp*4]
cmp esi, edi
jbe 0x50149f
mov esi, dword [esp + 0x70]
mov edi, dword [esi + edi*4]
cmp eax, edx
jae 0x501498
mov edx, dword [esp + 0x8c]
lea edx, [edx + eax*8]
mov dword [edx], ebx
mov dword [edx + 4], edi
dec eax
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x24]
jmp 0x501407
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x160], edx
add esp, 0x13c
ret
mov ecx, edx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edi
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, edx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, esi
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_diff.tgs