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

Disassembly:
mov ecx, dword [0x776294]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x224]
cmp eax, dword [ecx + 8]
jbe 0x518ab4
sub esp, 0x2a4
mov eax, 0
mov dword [esp + 0x2a0], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2cc], 0
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x2d4], 0
lea eax, [0x5c4340]
mov dword [esp], eax
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x2bc]
mov dword [esp + 8], edx
call sym.runtime.mapaccess2_fast32
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51688c
mov eax, dword [esp + 0x2b4]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2b8]
mov dword [esp], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 0x2b4]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x2b8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], ecx
test eax, eax
jne 0x516853
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x2b4]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x2b8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x16c]
test ecx, ecx
je 0x5167b5
mov edx, dword [esp + 0x2bc]
cmp dword [ecx], edx
jne 0x5167bc
mov ebx, dword [esp + 0x2c4]
test ebx, ebx
jne 0x515ea9
lea edi, [esp + 0x144]
mov ebx, eax
mov eax, 0
call fcn.0046ab9a
mov dword [esp + 0x284], 0
mov dword [esp + 0x288], 0
lea ecx, [sym.debug_dwarf._Data_.readType.func1]
mov dword [esp + 0x284], ecx
lea ecx, [esp + 0x144]
mov dword [esp + 0x288], ecx
lea ecx, [esp + 0x284]
mov dword [esp + 0x2a0], ecx
mov byte [esp + 0x23], 1
mov eax, ebx
mov ecx, dword [esp + 0x16c]
lea ebx, [esp + 0x144]
mov dword [esp + 0x94], eax
mov dword [esp + 0x108], ebx
mov dword [esp + 0x38], 0
xchg ebp, ebx
setne bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
lea edi, [esp + 0x264]
mov esi, eax
xor eax, eax
call fcn.0046ab98
lea ecx, [sym.debug_dwarf._Data_.readType.func2]
mov dword [esp + 0x264], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x268], ecx
mov edi, edx
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x26c], edx
mov ebp, dword [esp + 0x2b8]
mov dword [esp + 0x270], ebp
lea ecx, [esp + 0x164]
mov dword [esp + 0x274], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x27c], ecx
mov ebx, dword [esp + 0x2ac]
mov dword [esp + 0x278], ebx
lea ebp, [esp + 0x38]
mov dword [esp + 0x280], ebp
mov ebp, edi
lea edi, [esp + 0x240]
call fcn.0046ab97
lea ecx, [sym.debug_dwarf._Data_.readType.func3]
mov dword [esp + 0x240], ecx
lea ecx, [esp + 0x164]
mov dword [esp + 0x244], ecx
mov ecx, dword [esp + 0x2a8]
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x250], ecx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x254], edx
mov edx, dword [esp + 0x2b8]
mov dword [esp + 0x258], edx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 0x25c], edx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x260], ecx
mov ebx, dword [esp + 0x16c]
mov edi, dword [ebx + 4]
movzx ecx, byte [esp + 0x22]
xor ecx, 1
mov byte [esp + 0x22], cl
cmp edi, 0x15
jbe 0x5162bb
cmp edi, 0x24
ja 0x5160b0
cmp edi, 0x16
je 0x516027
cmp edi, 0x17
je 0x516458
cmp edi, 0x24
jne 0x51656c
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x1b0], edi
mov dword [esp + 0xbc], edi
mov esi, dword [ebx + 0x10]
xor eax, eax
mov dword [esp + 0x6c], eax
xor eax, eax
jmp 0x51829a
lea eax, [0x5ccdc0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x114], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635740]
mov dword [eax], ecx
mov edx, dword [0x776350]
test edx, edx
jne 0x516083
mov ebx, dword [esp + 0x114]
jmp 0x516097
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x114]
mov dword [edi], ebx
mov ebp, dword [eax + 4]
mov dword [edi + 4], ebp
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x16c]
mov ebp, dword [eax + 0xc]
mov esi, ebp
mov edi, dword [eax + 0x10]
xor edx, edx
jmp 0x5181d7
cmp edi, 0x35
ja 0x5160c4
cmp edi, 0x26
je 0x5160cd
cmp edi, 0x35
je 0x5160cd
jmp 0x51656c
cmp edi, 0x37
jne 0x516229
lea eax, [0x5d2ee0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x124], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635724]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x516129
mov ecx, dword [esp + 0x124]
jmp 0x51613d
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x124]
mov dword [edi], ecx
mov ebx, dword [eax + 4]
mov dword [edi + 4], ebx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x240]
mov ebx, dword [esp + 0x16c]
mov dword [esp], ebx
lea edx, [esp + 0x240]
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x124]
mov dword [ebx + 0x18], eax
mov eax, dword [0x776350]
test eax, eax
je 0x516183
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x1c]
mov dword [edi + 4], eax
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x164]
test eax, eax
jne 0x5169b3
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 4]
cmp ecx, 0x26
jne 0x5161ca
mov dword [ebx + 0x14], 5
mov ecx, dword [0x776350]
test ecx, ecx
je 0x5161bf
mov ecx, dword [ebx + 0x10]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
lea ecx, [0x5ed28a]
mov dword [ebx + 0x10], ecx
jmp 0x51621e
cmp ecx, 0x35
jne 0x5161f5
mov dword [ebx + 0x14], 8
mov ecx, dword [0x776350]
test ecx, ecx
je 0x5161ea
mov ecx, dword [ebx + 0x10]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
lea ecx, [0x5edead]
mov dword [ebx + 0x10], ecx
jmp 0x51621e
cmp ecx, 0x37
jne 0x51621e
mov dword [ebx + 0x14], 8
mov ecx, dword [0x776350]
test ecx, ecx
je 0x516215
mov ecx, dword [ebx + 0x10]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
lea ecx, [0x5edea5]
mov dword [ebx + 0x10], ecx
lea ecx, [0x635724]
jmp 0x51699c
cmp edi, 0x3b
jne 0x51656c
lea eax, [0x5c8740]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x110], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635eb0]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x51628e
mov ecx, dword [esp + 0x110]
jmp 0x5162a2
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x110]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 0xc]
mov ebx, edx
mov ebp, dword [eax + 0x10]
xor esi, esi
jmp 0x518163
cmp edi, 4
ja 0x516446
cmp edi, 1
je 0x516368
cmp edi, 2
je 0x516458
cmp edi, 4
jne 0x51656c
lea eax, [0x5d2fe0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x120], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635a18]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x51633b
mov ecx, dword [esp + 0x120]
jmp 0x51634f
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x120]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 0xc]
mov ebx, edx
mov ebp, dword [eax + 0x10]
xor esi, esi
jmp 0x517e75
lea eax, [0x5d7960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x12c], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x63591c]
mov dword [eax], ecx
mov edx, dword [0x776350]
test edx, edx
jne 0x5163c4
mov ebx, dword [esp + 0x12c]
jmp 0x5163d8
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x12c]
mov dword [edi], ebx
mov ebp, dword [eax + 4]
mov dword [edi + 4], ebp
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0x16c]
mov dword [esp], ecx
lea edx, [esp + 0x240]
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x12c]
mov dword [ebx + 0x10], eax
mov eax, dword [0x776350]
test eax, eax
je 0x51641e
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0x164]
test eax, eax
jne 0x5169b3
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0xc]
mov ebp, ecx
mov esi, dword [eax + 0x10]
xor edx, edx
jmp 0x517aad
cmp edi, 0xf
je 0x51672c
cmp edi, 0x13
jne 0x516563
lea eax, [0x5da6c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x128], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635954]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x5164b4
mov ecx, dword [esp + 0x128]
jmp 0x5164c8
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x128]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 4]
cmp edx, 2
jne 0x516500
mov dword [ecx + 0x1c], 5
mov edx, dword [0x776350]
test edx, edx
je 0x5164f5
mov edx, dword [ecx + 0x18]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
lea edx, [0x5ed343]
mov dword [ecx + 0x18], edx
jmp 0x516554
cmp edx, 0x13
jne 0x51652b
mov dword [ecx + 0x1c], 6
mov edx, dword [0x776350]
test edx, edx
je 0x516520
mov edx, dword [ecx + 0x18]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
lea edx, [0x5ed5f8]
mov dword [ecx + 0x18], edx
jmp 0x516554
cmp edx, 0x17
jne 0x516554
mov dword [ecx + 0x1c], 5
mov edx, dword [0x776350]
test edx, edx
je 0x51654b
mov edx, dword [ecx + 0x18]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
lea edx, [0x5ed348]
mov dword [ecx + 0x18], edx
mov edx, dword [eax + 0xc]
mov ebx, edx
mov ebp, dword [eax + 0x10]
xor esi, esi
jmp 0x516db2
cmp edi, 0x15
je 0x5165fb
lea eax, [0x5ccee0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x10c], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635ecc]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x5165c8
mov ecx, dword [esp + 0x10c]
jmp 0x5165dc
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x10c]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 4]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0xc]
mov ebx, edx
mov ebp, dword [eax + 0x10]
xor esi, esi
jmp 0x516d45
lea eax, [0x5d3160]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x118], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635938]
mov dword [eax], ecx
mov ecx, dword [0x776350]
test ecx, ecx
jne 0x516657
mov ecx, dword [esp + 0x118]
jmp 0x51666b
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x118]
mov dword [edi], ecx
mov ebx, dword [eax + 4]
mov dword [edi + 4], ebx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x240]
mov ebx, dword [esp + 0x16c]
mov dword [esp], ebx
lea edx, [esp + 0x240]
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x10], eax
mov eax, dword [0x776350]
test eax, eax
je 0x5166b1
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0x164]
test eax, eax
jne 0x5169b3
lea eax, [0x5ccd00]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 8
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x118]
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 8
mov edx, dword [0x776350]
test edx, edx
je 0x516711
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x18]
mov dword [edi + 4], ebx
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
jmp 0x516c13
lea eax, [0x5cce80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x11c], eax
lea ecx, [0x5c4340]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x2bc]
mov dword [esp + 8], ebx
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
lea ecx, [0x635900]
mov dword [eax], ecx
mov edx, dword [0x776350]
test edx, edx
jne 0x516788
mov ebx, dword [esp + 0x11c]
jmp 0x51679c
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x11c]
mov dword [edi], ebx
mov ebp, dword [eax + 4]
mov dword [edi + 4], ebp
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x16c]
mov ebp, dword [eax + 0xc]
mov esi, ebp
mov edi, dword [eax + 0x10]
xor edx, edx
jmp 0x5168cb
mov edx, dword [esp + 0x2bc]
lea edi, [esp + 0x28c]
xor eax, eax
call fcn.0046ab9b
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x290], ecx
mov dword [esp + 0x294], edx
lea ecx, [0x5f135e]
mov dword [esp + 0x298], ecx
mov dword [esp + 0x29c], 0x11
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2cc], 0
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2d4], ecx
add esp, 0x2a4
ret
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2cc], 0
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], ecx
add esp, 0x2a4
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x2d4], 0
add esp, 0x2a4
ret
mov ebp, dword [esp + 0xbc]
add ebp, 0x10
inc edx
cmp edx, edi
jge 0x5168e4
mov dword [esp + 0xbc], ebp
cmp dword [ebp], 0x49
jne 0x5168c0
shl edx, 4
lea ebp, [esi + edx]
jmp 0x5168e6
xor ebp, ebp
test ebp, ebp
je 0x5168ef
mov ebp, dword [ebp + 4]
jmp 0x5168f1
xor ebp, ebp
test ebp, ebp
je 0x516943
mov ecx, dword [esp + 0x240]
mov dword [esp], eax
lea edx, [esp + 0x240]
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x11c]
mov dword [ebx + 0x10], eax
mov eax, dword [0x776350]
test eax, eax
je 0x516931
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0x16c]
lea ecx, [0x635900]
jmp 0x51699c
lea eax, [0x5c8380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
lea ecx, [0x6359a8]
mov edx, dword [esp + 0x11c]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x776350]
test ecx, ecx
je 0x51698a
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x16c]
lea ecx, [0x635900]
mov ebx, edx
mov edx, dword [esp + 0x164]
test edx, edx
jne 0x5169b3
mov edx, dword [eax + 0xc]
mov ebp, edx
mov eax, dword [eax + 0x10]
xor esi, esi
jmp 0x516a30
lea eax, [0x5c4340]
mov dword [esp], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp + 8], eax
call sym.runtime.mapdelete_fast32
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2cc], 0
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], ecx
movzx eax, byte [esp + 0x22]
test al, 1
je 0x516a25
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x2a0]
mov eax, dword [edx]
call eax
add esp, 0x2a4
ret
lea edx, [edi + 0x10]
inc esi
cmp esi, eax
jge 0x516a43
mov edi, edx
cmp dword [edx], 0xb
jne 0x516a2c
shl esi, 4
lea eax, [esi + ebp]
jmp 0x516a45
xor eax, eax
test eax, eax
je 0x516a51
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x516a55
xor edx, edx
xor eax, eax
lea ebp, [0x5c2d00]
cmp edx, ebp
jne 0x516a66
mov edx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x516a70
mov eax, 0
mov edx, 0
mov dword [esp + 0x100], ebx
mov dword [esp + 0x30], ecx
jne 0x516a88
mov ebp, edx
mov edx, eax
mov eax, ebp
jmp 0x516b81
test ecx, ecx
je 0x516b77
mov eax, dword [ecx + 8]
cmp eax, 0x5d34b551
jne 0x516b4c
lea eax, [0x635740]
cmp ecx, eax
jne 0x516b6b
mov eax, dword [esp + 0x108]
mov edx, dword [eax + 8]
mov ebp, dword [eax + 4]
inc ebp
mov esi, dword [eax]
cmp edx, ebp
jae 0x516b21
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5d2ce0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x108]
mov dword [ebx + 8], eax
mov eax, dword [0x776350]
test eax, eax
je 0x516b0e
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, dword [esp + 0x100]
mov ebp, edx
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ebp
mov eax, dword [0x776350]
test eax, eax
je 0x516b3c
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov eax, dword [esi + ebp*4 - 4]
mov dword [edi + 4], eax
mov dword [esi + ebp*4 - 4], ebx
mov edx, 0xffffffff
mov eax, 0xffffffff
jmp 0x516b81
cmp eax, 0x79681ecd
jne 0x516b6b
lea eax, [0x635900]
cmp ecx, eax
jne 0x516b6b
mov eax, dword [esp + 0x94]
mov edx, eax
sar edx, 0x1f
jmp 0x516b81
mov edx, 0xffffffff
mov eax, 0xffffffff
jmp 0x516b81
mov edx, 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], eax
mov ebp, dword [ecx + 0x10]
mov dword [esp], ebx
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x2d4], 0
movzx eax, byte [esp + 0x22]
test al, 1
je 0x516bf9
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x2a0]
mov eax, dword [edx]
call eax
add esp, 0x2a4
ret
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
test eax, eax
je 0x516d28
mov ecx, dword [eax + 4]
cmp ecx, 5
je 0x516c50
cmp ecx, 0x18
jne 0x516c00
lea eax, [0x5c86e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
lea ecx, [0x635aa4]
jmp 0x516c7a
mov ecx, dword [esp + 0x240]
mov dword [esp], eax
lea edx, [esp + 0x240]
call ecx
mov eax, dword [esp + 0x164]
test eax, eax
jne 0x5169b3
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x118]
mov ebp, dword [ebx + 0x20]
mov esi, dword [ebx + 0x1c]
inc esi
mov edi, dword [ebx + 0x18]
cmp ebp, esi
jae 0x516cfb
mov dword [esp + 0x34], ecx
mov dword [esp + 0x104], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5ccd00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x20], eax
mov eax, dword [0x776350]
test eax, eax
je 0x516ce9
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x18]
mov dword [edi + 4], eax
mov dword [ebx + 0x18], ecx
mov eax, dword [esp + 0x104]
mov esi, edx
mov edi, ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x1c], esi
lea ebp, [edi + esi*8 - 8]
mov dword [ebp], ecx
mov ecx, dword [0x776350]
lea ebp, [edi + esi*8 - 4]
test ecx, ecx
je 0x516d20
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebp]
mov dword [edi + 4], ecx
mov dword [ebp], eax
jmp 0x516c00
mov eax, dword [esp + 0x16c]
lea ecx, [0x635938]
mov ebx, dword [esp + 0x118]
jmp 0x51699c
lea edx, [edi + 0x10]
inc esi
cmp esi, ebp
jge 0x516d58
mov edi, edx
cmp dword [edx], 3
jne 0x516d41
shl esi, 4
lea edx, [esi + ebx]
jmp 0x516d5a
xor edx, edx
test edx, edx
je 0x516d66
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
jmp 0x516d6a
xor ebx, ebx
xor edx, edx
lea ebp, [0x5c2b40]
cmp ebx, ebp
jne 0x516d7b
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x516d7f
xor edx, edx
xor ebx, ebx
mov dword [ecx + 0xc], edx
mov edx, dword [0x776350]
test edx, edx
je 0x516d99
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [ecx + 8]
mov dword [edi + 4], edx
mov dword [ecx + 8], ebx
lea ecx, [0x635ecc]
mov ebx, dword [esp + 0x10c]
jmp 0x51699c
lea edx, [edi + 0x10]
inc esi
cmp esi, ebp
jge 0x516dc5
mov edi, edx
cmp dword [edx], 3
jne 0x516dae
shl esi, 4
lea edx, [esi + ebx]
jmp 0x516dc7
xor edx, edx
test edx, edx
je 0x516dd3
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
jmp 0x516dd7
xor ebx, ebx
xor edx, edx
lea ebp, [0x5c2b40]
cmp ebx, ebp
jne 0x516de8
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x516dec
xor edx, edx
xor ebx, ebx
mov dword [ecx + 0x14], edx
mov edx, dword [0x776350]
test edx, edx
je 0x516e06
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [ecx + 0x10]
mov dword [edi + 4], edx
mov dword [ecx + 0x10], ebx
mov edx, dword [eax + 0xc]
mov ebx, edx
mov esi, dword [eax + 0x10]
xor edi, edi
jmp 0x516e20
mov edx, dword [esp + 0xbc]
add edx, 0x10
inc edi
cmp edi, esi
jge 0x516e38
mov dword [esp + 0xbc], edx
cmp dword [edx], 0x3c
jne 0x516e15
shl edi, 4
lea edx, [edi + ebx]
jmp 0x516e3a
xor edx, edx
test edx, edx
je 0x516e43
mov edx, dword [edx + 4]
jmp 0x516e45
xor edx, edx
test edx, edx
setne al
mov byte [ecx + 0x2c], al
lea eax, [0x5c5a00]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 8
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x128]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 8
mov edx, dword [0x776350]
test edx, edx
je 0x516e9b
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x20]
mov dword [edi + 4], ebx
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x516f16
mov dword [esp + 0xb8], edi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], edx
mov dword [esp + 0x134], ecx
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x134], ecx
test eax, eax
je 0x5175aa
cmp dword [eax + 4], 0xd
je 0x516f35
mov edi, ebp
mov eax, ebx
mov ebx, edx
mov edx, eax
jmp 0x516ebd
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x13c], eax
lea eax, [0x5de080]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x240]
mov edx, dword [esp + 0x13c]
mov dword [esp], edx
lea edx, [esp + 0x240]
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x160]
mov dword [edx + 8], eax
mov eax, dword [0x776350]
test eax, eax
je 0x516fa8
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebx, dword [edx + 0xc]
mov dword [edi + 4], ebx
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x164]
test ecx, ecx
jne 0x5169b3
mov ecx, dword [esp + 0x13c]
mov ebx, dword [ecx + 0xc]
mov ebp, ebx
mov eax, dword [ecx + 0x10]
xor esi, esi
jmp 0x51774e
shl esi, 4
lea ebx, [ebp + esi]
jmp 0x516fdb
xor ebx, ebx
test ebx, ebx
je 0x516fe7
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x516feb
xor ebp, ebp
xor ebx, ebx
test ebp, ebp
je 0x517230
mov eax, dword [ebp + 8]
cmp eax, 0x81044065
jne 0x517206
mov eax, ecx
lea ecx, [0x5bd680]
cmp ebp, ecx
jne 0x5171fe
mov ebp, dword [ebx]
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea edi, [esp + 0xcc]
xor eax, eax
call fcn.0046ab93
mov ecx, dword [esp + 0x2a8]
mov dword [esp + 0xcc], ecx
mov edi, dword [ecx + 0x98]
mov ecx, dword [ecx + 0x9c]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], ecx
lea ecx, [0x635e94]
mov dword [esp + 0xd8], ecx
lea ecx, [0x776160]
mov dword [esp + 0xdc], ecx
lea ecx, [0x5ede9d]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], 8
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], ebp
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
lea edi, [esp + 0x174]
lea esi, [esp + 0xcc]
call fcn.0046b02e
mov ecx, dword [esp + 0x198]
test ecx, ecx
jne 0x5171a9
mov ebx, dword [esp + 0x1a0]
nop
test ebx, ebx
jne 0x5171a5
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x194], 0
lea edi, [esp + 0x1dc]
call fcn.0046ab9b
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], edx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x1e4], ecx
lea ecx, [0x5ee438]
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], 9
lea edi, [esp + 0x28c]
lea esi, [esp + 0x1dc]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea edx, [esp + 0x28c]
mov dword [esp + 4], edx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
xor eax, eax
mov edx, dword [esp + 0x160]
xor ebx, ebx
jmp 0x5171e8
mov ebx, dword [esp + 0x194]
mov ebp, dword [esp + 0x19c]
dec ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebp, ebx
dec ecx
movzx ebx, byte [ebx]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], esi
mov dword [esp + 0x194], ebp
inc dword [esp + 0x190]
cmp bl, 0x23
jne 0x517762
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x517966
lea ecx, [0x5c2d00]
jmp 0x517238
cmp eax, 0x99d6dd43
jne 0x517226
mov eax, ecx
lea ecx, [0x5c2d00]
cmp ebp, ecx
jne 0x517238
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [edx + 0x10], ebp
mov dword [edx + 0x14], ebx
jmp 0x517238
mov eax, ecx
lea ecx, [0x5c2d00]
jmp 0x517238
mov eax, ecx
lea ecx, [0x5c2d00]
mov ebx, dword [eax + 0xc]
mov ebp, ebx
mov esi, dword [eax + 0x10]
xor edi, edi
jmp 0x517806
shl edi, 4
lea ebx, [edi + ebp]
jmp 0x517251
xor ebx, ebx
test ebx, ebx
je 0x51725d
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x517261
xor ebp, ebp
xor ebx, ebx
lea ecx, [0x5c2b40]
cmp ebp, ecx
jne 0x517272
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x517276
xor ebx, ebx
xor ebp, ebp
mov dword [edx + 4], ebx
mov ebx, dword [0x776350]
test ebx, ebx
je 0x51728f
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov dword [edx], ebp
mov ebx, dword [eax + 0xc]
mov ebp, ebx
mov esi, dword [eax + 0x10]
xor edi, edi
jmp 0x51782a
shl edi, 4
lea ebx, [edi + ebp]
jmp 0x5172aa
xor ebx, ebx
test ebx, ebx
je 0x5172b6
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x5172ba
xor ebp, ebp
xor ebx, ebx
lea ecx, [0x5c2d00]
cmp ebp, ecx
jne 0x5172cb
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x5172cf
xor ebx, ebx
xor ebp, ebp
mov dword [edx + 0x18], ebp
mov dword [edx + 0x1c], ebx
mov ebx, dword [eax + 0xc]
mov ebp, ebx
mov esi, dword [eax + 0x10]
xor edi, edi
jmp 0x51784e
shl edi, 4
lea ebx, [edi + ebp]
jmp 0x5172ee
xor ebx, ebx
test ebx, ebx
je 0x5172fa
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x5172fe
xor ebp, ebp
xor ebx, ebx
cmp ebp, ecx
jne 0x517309
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x51730d
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x24], ebp
mov dword [edx + 0x20], esi
mov dword [edx + 0x24], ebx
mov ebx, dword [eax + 0xc]
mov esi, ebx
mov edi, dword [eax + 0x10]
xor ecx, ecx
mov dword [esp + 0x54], ecx
lea ecx, [0x5c2d00]
jmp 0x51787a
shl ebp, 4
lea ebx, [ebp + esi]
jmp 0x51733b
xor ebx, ebx
test ebx, ebx
je 0x517347
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x51734b
xor ebp, ebp
xor ebx, ebx
cmp ebp, ecx
jne 0x51735e
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
mov edi, ebp
mov ebp, dword [esp + 0x24]
cmp ebp, ecx
jmp 0x517372
mov ebx, ebp
mov ebp, dword [esp + 0x24]
cmp ebp, ecx
mov edi, ebx
mov ebx, 0
mov esi, 0
mov dword [edx + 0x28], esi
mov dword [edx + 0x2c], ebx
jne 0x517382
cmp edi, ecx
je 0x517897
mov ebx, dword [eax + 0xc]
mov ebp, ebx
mov eax, dword [eax + 0x10]
xor esi, esi
jmp 0x517936
shl esi, 4
lea eax, [esi + ebp]
jmp 0x51739b
xor eax, eax
test eax, eax
je 0x5173a7
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x5173ab
xor ebx, ebx
xor eax, eax
cmp ebx, ecx
jne 0x5173b6
mov ebx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x5173ba
xor eax, eax
xor ebx, ebx
mov dword [edx + 0x30], ebx
mov dword [edx + 0x34], eax
mov eax, dword [esp + 0x128]
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x24]
inc ebp
mov esi, dword [eax + 0x20]
cmp ebx, ebp
jae 0x51743a
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5c5a00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x128]
mov dword [ebx + 0x28], eax
mov eax, dword [0x776350]
test eax, eax
je 0x517424
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x20]
mov dword [edi + 4], eax
mov dword [ebx + 0x20], ecx
mov eax, ebx
mov ebp, edx
mov esi, ecx
lea ecx, [0x5c2d00]
mov edx, dword [esp + 0x160]
mov dword [eax + 0x24], ebp
mov ebx, dword [0x776350]
mov edi, dword [esp + 0x48]
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
sete cl
and ecx, edi
test ebx, ebx
je 0x51746d
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov ebx, dword [esi + ebp*4 - 4]
mov dword [edi + 4], ebx
mov dword [esi + ebp*4 - 4], edx
test cl, cl
je 0x51758f
mov ecx, dword [esp + 0x40]
cmp dword [edx + 0x10], ecx
sete cl
mov ebx, dword [esp + 0x44]
cmp dword [edx + 0x14], ebx
sete bl
and ebx, ecx
test bl, bl
je 0x51758f
cmp dword [eax + 0x1c], 5
jne 0x5174b2
mov ecx, dword [eax + 0x18]
cmp dword [ecx], 0x6f696e75
jne 0x5174b2
cmp byte [ecx + 4], 0x6e
je 0x51758f
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x517586
lea ebx, [0x63591c]
cmp dword [ecx], ebx
jne 0x51757d
mov ebp, dword [esp + 0x108]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
inc edi
mov ebx, dword [ebp + 0xc]
cmp esi, edi
jae 0x517551
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5b8300]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x108]
mov dword [ebx + 0x14], eax
mov eax, dword [0x776350]
test eax, eax
je 0x517533
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0xc]
mov dword [edi + 4], eax
mov dword [ebx + 0xc], ecx
mov eax, dword [esp + 0x128]
mov ebp, ebx
mov edi, edx
mov ebx, ecx
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x160]
mov dword [ebp + 0x10], edi
mov esi, dword [0x776350]
test esi, esi
je 0x517577
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + esi*4 - 4]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0x108]
mov edi, esi
mov dword [ebx + edi*4 - 4], ecx
jmp 0x517596
mov ebp, dword [esp + 0x108]
jmp 0x517596
mov ebp, dword [esp + 0x108]
jmp 0x517596
mov ebp, dword [esp + 0x108]
lea ecx, [edx + 8]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov esi, dword [edx + 0x30]
mov edx, dword [edx + 0x34]
jmp 0x516ebd
mov eax, dword [esp + 0x128]
cmp dword [eax + 0x1c], 5
jne 0x5175c8
mov ebx, dword [eax + 0x18]
cmp dword [ebx], 0x6f696e75
jne 0x5175c8
cmp byte [ebx + 4], 0x6e
je 0x5175e6
mov ebx, dword [esp + 0x16c]
mov esi, dword [ebx + 0xc]
mov edi, esi
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x50], eax
jmp 0x517612
mov eax, dword [esp + 0x16c]
lea ecx, [0x635954]
mov ebx, dword [esp + 0x128]
jmp 0x51699c
mov esi, eax
mov eax, dword [esp + 0xbc]
add eax, 0x10
inc esi
mov dword [esp + 0x50], esi
mov esi, eax
mov eax, dword [esp + 0x50]
cmp eax, ebx
jge 0x51762d
mov dword [esp + 0xbc], esi
cmp dword [esi], 0xb
jne 0x5175ff
shl eax, 4
add eax, edi
jmp 0x51762f
xor eax, eax
test eax, eax
je 0x51763b
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x51763f
xor ebx, ebx
xor eax, eax
lea esi, [0x5c2d00]
cmp ebx, esi
jne 0x517650
mov ebx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x51765a
mov eax, 0
mov ebx, 0
jne 0x517737
cmp ebx, ebp
sete bl
cmp eax, edx
sete al
and eax, ebx
test al, al
je 0x517737
test ecx, ecx
je 0x51772e
lea eax, [0x63591c]
cmp dword [ecx], eax
jne 0x517725
mov eax, dword [esp + 0x108]
mov edx, dword [eax + 0x14]
mov ebx, dword [eax + 0x10]
inc ebx
mov ebp, dword [eax + 0xc]
cmp edx, ebx
jae 0x517704
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5b8300]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x108]
mov dword [ebx + 0x14], eax
mov eax, dword [0x776350]
test eax, eax
je 0x5176ee
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0xc]
mov dword [edi + 4], eax
mov dword [ebx + 0xc], ecx
mov eax, ebx
lea esi, [0x5c2d00]
mov ebx, edx
mov ebp, ecx
mov ecx, dword [esp + 0x134]
mov dword [eax + 0x10], ebx
mov edx, dword [0x776350]
test edx, edx
je 0x51771f
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [ebp + ebx*4 - 4]
mov dword [edi + 4], edx
mov dword [ebp + ebx*4 - 4], ecx
jmp 0x51773e
mov eax, dword [esp + 0x108]
jmp 0x51773e
mov eax, dword [esp + 0x108]
jmp 0x51773e
mov eax, dword [esp + 0x108]
mov eax, dword [esp + 0x128]
jmp 0x5175e6
lea ebx, [edi + 0x10]
inc esi
cmp esi, eax
jge 0x516fd9
mov edi, ebx
cmp dword [ebx], 0x38
jne 0x51774a
jmp 0x516fd0
lea edi, [esp + 0x1c8]
call fcn.0046ab9b
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x1cc], ecx
mov ecx, dword [esp + 0x13c]
mov ecx, dword [ecx]
mov dword [esp + 0x1d0], ecx
lea ecx, [0x5f136f]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], 0x11
lea edi, [esp + 0x28c]
lea esi, [esp + 0x1c8]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
mov ebx, dword [esp + 0xbc]
add ebx, 0x10
inc edi
cmp edi, esi
jge 0x51724f
mov dword [esp + 0xbc], ebx
cmp dword [ebx], 3
jne 0x5177fb
jmp 0x517247
mov ebx, dword [esp + 0xbc]
add ebx, 0x10
inc edi
cmp edi, esi
jge 0x5172a8
mov dword [esp + 0xbc], ebx
cmp dword [ebx], 0xb
jne 0x51781f
jmp 0x5172a0
mov ebx, dword [esp + 0xbc]
add ebx, 0x10
inc edi
cmp edi, esi
jge 0x5172ec
mov dword [esp + 0xbc], ebx
cmp dword [ebx], 0xc
jne 0x517843
jmp 0x5172e4
mov ebx, dword [esp + 0xbc]
add ebx, 0x10
inc ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x24]
mov ebp, dword [esp + 0x54]
cmp ebp, edi
jge 0x517339
mov dword [esp + 0xbc], ebx
cmp dword [ebx], 0x6b
jne 0x517867
jmp 0x517330
lea edi, [esp + 0x1b4]
xor eax, eax
call fcn.0046ab9b
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x16c]
mov ecx, dword [ecx]
mov dword [esp + 0x1bc], ecx
lea ecx, [0x5f71e9]
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], 0x1f
lea edi, [esp + 0x28c]
lea esi, [esp + 0x1b4]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
lea ebx, [edi + 0x10]
inc esi
cmp esi, eax
jge 0x517399
mov edi, ebx
cmp dword [ebx], 0xd
jne 0x517932
jmp 0x517391
mov ecx, dword [esp + 0x58]
inc ecx
mov edx, dword [esp + 0x88]
lea ebx, [edx + 7]
mov edx, dword [esp + 0x160]
mov ebp, edi
mov esi, eax
xor eax, eax
mov edi, ebp
lea ebp, [esp + 0x174]
cmp dword [ebp + 0x24], ecx
jle 0x517a61
mov dword [esp + 0x58], ecx
mov dword [esp + 0x88], ebx
mov eax, dword [esp + 0x194]
movzx eax, byte [eax + ecx]
mov byte [esp + 0x21], al
and eax, 0x7f
mov dword [esp + 0xb8], eax
mov ecx, ebx
shl eax, cl
lea edx, [ecx - 0x20]
mov ecx, edx
mov ebp, dword [esp + 0xb8]
shl ebp, cl
mov dword [esp + 0xb4], ebp
neg ecx
mov ebp, dword [esp + 0xb8]
shr ebp, cl
cmp ebx, 0x20
sbb ebx, ebx
and eax, ebx
or edi, eax
cmp ecx, 0x20
sbb ebx, ebx
and ebp, ebx
cmp edx, 0x20
sbb ebx, ebx
mov eax, ebp
mov ebp, dword [esp + 0xb4]
and ebx, ebp
or eax, ebx
or eax, esi
movzx ebx, byte [esp + 0x21]
test bl, 0x80
jne 0x51794a
mov ebx, dword [esp + 0x190]
mov ebp, dword [esp + 0x58]
lea ebx, [ebp + ebx + 1]
mov dword [esp + 0x190], ebx
mov ecx, dword [esp + 0x198]
lea ebx, [ebp + 1]
cmp ecx, ebx
jb 0x517aa2
mov edx, dword [esp + 0x194]
mov esi, dword [esp + 0x19c]
sub ecx, ebp
sub esi, ebp
lea ebp, [esi - 1]
dec ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
lea ecx, [ebp + edx]
mov dword [esp + 0x194], ecx
mov edx, dword [esp + 0x160]
mov ecx, eax
xor eax, eax
jmp 0x517a65
xor edi, edi
xor ecx, ecx
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x1a0]
test ecx, ecx
jne 0x517a88
mov eax, dword [esp + 0x13c]
lea ecx, [0x5c2d00]
jmp 0x517238
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
jmp 0x5169b3
mov eax, ebx
call sym.runtime.panicSliceB
lea ecx, [edi + 0x10]
inc edx
cmp edx, esi
jge 0x517ac1
mov edi, ecx
cmp dword [ecx], 0x2e
jne 0x517aa9
shl edx, 4
lea ecx, [ebp + edx]
jmp 0x517ac3
xor ecx, ecx
test ecx, ecx
je 0x517acf
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x517ad3
xor ebp, ebp
xor ecx, ecx
lea esi, [0x5c2d00]
cmp ebp, esi
jne 0x517ae4
mov ebp, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x517ae8
xor ecx, ecx
xor ebp, ebp
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
jmp 0x517b45
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1ac], ebx
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
mov ecx, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov ecx, ebp
mov edx, ebx
mov ebx, dword [esp + 0x1ac]
test eax, eax
je 0x517c1a
mov ebp, dword [eax + 4]
cmp ebp, 4
je 0x517b78
cmp ebp, 0x21
jne 0x517b09
mov dword [esp + 0x170], ebx
mov ebp, dword [eax + 0xc]
mov esi, ebp
mov eax, dword [eax + 0x10]
mov edi, ebp
xor ebp, ebp
mov dword [esp + 0x70], ebp
mov ebp, edi
jmp 0x517d41
mov dword [esp + 0x140], eax
lea edi, [esp + 0x22c]
xor eax, eax
call fcn.0046ab9b
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x22c], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x230], ecx
mov ecx, dword [esp + 0x140]
mov ecx, dword [ecx]
mov dword [esp + 0x234], ecx
lea ecx, [0x5fb8e2]
mov dword [esp + 0x238], ecx
mov dword [esp + 0x23c], 0x2d
lea edi, [esp + 0x28c]
lea esi, [esp + 0x22c]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
test ecx, ecx
jne 0x517c56
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0xffffffff
mov dword [esp + 0xc4], 0xffffffff
mov ecx, 1
lea ebx, [esp + 0xc0]
test ecx, ecx
jbe 0x517d22
mov dword [esp + 0x170], ebx
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov ebp, dword [esp + 0x12c]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edx
lea eax, [ecx - 1]
jmp 0x517c8b
mov dword [ecx + 0x14], eax
lea eax, [ebp - 1]
mov ebx, dword [esp + 0x170]
mov ebp, ecx
test eax, eax
jle 0x517d0e
mov dword [esp + 0x74], eax
lea eax, [0x5d7960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x12c]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x10], edx
mov edx, dword [0x776350]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x170]
lea edi, [esi + ebp*8]
lea esi, [esi + ebp*8 + 4]
test edx, edx
je 0x517cdc
mov edx, edi
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
mov edi, edx
mov dword [eax + 0x14], ebx
mov edx, dword [esi]
mov ebx, dword [edi]
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], edx
lea edx, [0x63591c]
mov dword [ecx + 0x10], edx
mov ebx, dword [0x776350]
test ebx, ebx
je 0x517c7c
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x14]
mov dword [edi + 4], ebx
jmp 0x517c7c
mov eax, dword [esp + 0x16c]
lea ecx, [0x63591c]
mov ebx, ebp
jmp 0x51699c
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov ebp, dword [esp + 0xbc]
add ebp, 0x10
inc ebx
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x170]
mov ebx, dword [esp + 0x70]
cmp ebx, eax
jge 0x517d5d
mov dword [esp + 0xbc], ebp
cmp dword [ebp], 0x37
jne 0x517d2b
shl ebx, 4
add ebx, esi
jmp 0x517d5f
xor ebx, ebx
test ebx, ebx
je 0x517d6b
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x517d6f
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x1b0], esi
lea esi, [0x5c2d00]
cmp ebp, esi
jne 0x517d87
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x517d91
mov ebx, 0
mov ebp, 0
je 0x517d97
xor ebx, ebx
jmp 0x517e10
lea eax, [ecx + 1]
cmp edx, eax
jb 0x517da7
mov ecx, dword [esp + 0x170]
jmp 0x517dfa
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebp
mov ecx, dword [esp + 0x170]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], esi
call sym.runtime.growslice
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x80]
lea esi, [0x5c2d00]
mov ecx, ebx
mov ebx, dword [esp + 0x84]
lea edi, [ecx + eax*8 - 8]
mov dword [edi], ebp
mov dword [edi + 4], ebx
mov ebx, ecx
mov ecx, eax
jmp 0x517b09
lea edi, [ebp + 0x10]
inc ebx
cmp ebx, eax
jge 0x517e29
mov ebp, edi
cmp dword [edi], 0x2f
jne 0x517e0c
shl ebx, 4
mov eax, dword [esp + 0x1b0]
add eax, ebx
jmp 0x517e2b
xor eax, eax
test eax, eax
je 0x517e37
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x517e3b
xor ebx, ebx
xor eax, eax
cmp ebx, esi
jne 0x517e46
mov ebx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x517e50
mov eax, 0
mov ebx, 0
jne 0x517e5a
add ebx, 1
adc eax, 0
jmp 0x517e68
test ecx, ecx
jne 0x517e68
mov eax, 0xffffffff
mov ebx, 0xffffffff
mov ebp, ebx
mov ebx, eax
jmp 0x517d97
lea edx, [edi + 0x10]
inc esi
cmp esi, ebp
jge 0x517e88
mov edi, edx
cmp dword [edx], 3
jne 0x517e71
shl esi, 4
lea edx, [esi + ebx]
jmp 0x517e8a
xor edx, edx
test edx, edx
je 0x517e96
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
jmp 0x517e9a
xor ebx, ebx
xor edx, edx
lea ebp, [0x5c2b40]
cmp ebx, ebp
jne 0x517eab
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x517eaf
xor edx, edx
xor ebx, ebx
mov dword [ecx + 0x14], edx
mov edx, dword [0x776350]
test edx, edx
je 0x517ec9
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [ecx + 0x10]
mov dword [edi + 4], edx
mov dword [ecx + 0x10], ebx
lea eax, [0x5b8380]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 8
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x120]
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 8
mov edx, dword [0x776350]
test edx, edx
je 0x517f1a
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x18]
mov dword [edi + 4], ebx
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
jmp 0x517f45
mov eax, dword [esp + 0x264]
lea edx, [esp + 0x264]
call eax
mov eax, dword [esp]
test eax, eax
je 0x51810c
cmp dword [eax + 4], 0x28
jne 0x517f32
mov dword [esp + 0x138], eax
lea eax, [0x5cce20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 0xc]
mov edx, ecx
mov ebx, dword [eax + 0x10]
xor ebp, ebp
jmp 0x518129
shl ebp, 4
lea ebx, [ebp + edx]
jmp 0x517f89
xor ebx, ebx
test ebx, ebx
je 0x517f95
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x517f99
xor ebp, ebp
xor ebx, ebx
lea esi, [0x5c2b40]
cmp ebp, esi
jne 0x517faa
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x517fae
xor ebx, ebx
xor ebp, ebp
mov edi, dword [esp + 4]
mov dword [edi + 4], ebx
mov ebx, dword [0x776350]
test ebx, ebx
je 0x517fca
mov ecx, edi
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
mov edi, ecx
mov dword [edi], ebp
mov ebx, dword [eax + 0xc]
mov ebp, ebx
mov eax, dword [eax + 0x10]
xor ecx, ecx
jmp 0x518141
shl ecx, 4
lea ebx, [ebp + ecx]
jmp 0x517fe6
xor ebx, ebx
test ebx, ebx
je 0x517ff2
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x517ff6
xor ebp, ebp
xor ebx, ebx
lea esi, [0x5c2d00]
cmp ebp, esi
jne 0x518007
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x51800b
xor ebx, ebx
xor ebp, ebp
mov dword [edi + 8], ebp
mov dword [edi + 0xc], ebx
mov ebx, dword [esp + 0x120]
mov eax, dword [ebx + 0x1c]
cmp dword [ebx + 0x20], eax
jg 0x5180d3
mov dword [esp + 0x28], eax
mov dword [esp + 0x15c], edi
lea ecx, [0x5b8380]
mov dword [esp], ecx
mov dword [esp + 4], eax
shl eax, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1a8], eax
mov ecx, dword [esp + 0x120]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x1c]
lea ebp, [0x5b8380]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call sym.runtime.typedslicecopy
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x120]
mov dword [ecx + 0x1c], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x20], edx
mov edx, dword [0x776350]
test edx, edx
jne 0x5180ad
mov ebx, dword [esp + 0x1a8]
jmp 0x5180c1
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x1a8]
mov dword [edi], ebx
mov ebp, dword [ecx + 0x18]
mov dword [edi + 4], ebp
mov dword [ecx + 0x18], ebx
mov ebx, ecx
lea esi, [0x5c2d00]
mov edi, dword [esp + 0x15c]
mov edx, dword [ebx + 0x20]
lea ecx, [eax + 1]
cmp edx, ecx
jb 0x51815a
mov dword [ebx + 0x1c], ecx
cmp eax, ecx
jae 0x518155
mov ecx, dword [0x776350]
mov ebp, dword [ebx + 0x18]
test ecx, ecx
je 0x518103
mov ecx, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [ebp + eax*4]
mov dword [edi + 4], edx
mov edi, ecx
mov dword [ebp + eax*4], edi
jmp 0x517f32
mov eax, dword [esp + 0x16c]
lea ecx, [0x635a18]
mov ebx, dword [esp + 0x120]
jmp 0x51699c
lea ecx, [esi + 0x10]
inc ebp
cmp ebp, ebx
jge 0x517f87
mov esi, ecx
cmp dword [ecx], 3
jne 0x518125
jmp 0x517f7e
lea ebx, [edx + 0x10]
inc ecx
cmp ecx, eax
jge 0x517fe4
mov edx, ebx
cmp dword [ebx], 0x1c
jne 0x51813d
jmp 0x517fdb
call sym.runtime.panicIndex
call sym.runtime.panicSliceAcap
lea edx, [edi + 0x10]
inc esi
cmp esi, ebp
jge 0x518176
mov edi, edx
cmp dword [edx], 3
jne 0x51815f
shl esi, 4
lea edx, [esi + ebx]
jmp 0x518178
xor edx, edx
test edx, edx
je 0x518184
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
jmp 0x518188
xor ebx, ebx
xor edx, edx
lea ebp, [0x5c2b40]
cmp ebx, ebp
jne 0x518199
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x51819d
xor edx, edx
xor ebx, ebx
mov dword [ecx + 0xc], edx
mov edx, dword [0x776350]
test edx, edx
je 0x5181b7
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [ecx + 8]
mov dword [edi + 4], edx
mov dword [ecx + 8], ebx
lea ecx, [0x635eb0]
mov ebx, dword [esp + 0x110]
jmp 0x51699c
mov ebp, dword [esp + 0xbc]
add ebp, 0x10
inc edx
cmp edx, edi
jge 0x5181f0
mov dword [esp + 0xbc], ebp
cmp dword [ebp], 3
jne 0x5181cc
shl edx, 4
lea ebp, [edx + esi]
jmp 0x5181f2
xor ebp, ebp
test ebp, ebp
je 0x5181fe
mov esi, dword [ebp + 4]
mov ebp, dword [ebp + 8]
jmp 0x518202
xor esi, esi
xor ebp, ebp
lea edi, [0x5c2b40]
cmp esi, edi
jne 0x518214
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
jmp 0x518218
xor ebp, ebp
xor esi, esi
mov dword [ebx + 0xc], ebp
mov ebp, dword [0x776350]
test ebp, ebp
je 0x518232
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ebp, dword [ebx + 8]
mov dword [edi + 4], ebp
mov dword [ebx + 8], esi
mov ecx, dword [esp + 0x240]
mov dword [esp], eax
lea edx, [esp + 0x240]
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x114]
mov dword [ebx + 0x10], eax
mov eax, dword [0x776350]
test eax, eax
je 0x518271
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0x16c]
lea ecx, [0x635740]
jmp 0x51699c
mov edi, dword [esp + 0xa8]
add edi, 0x10
inc ecx
mov dword [esp + 0x6c], ecx
movzx ecx, byte [esp + 0x22]
mov ecx, dword [esp + 0x6c]
cmp ecx, esi
jge 0x5182be
mov dword [esp + 0xa8], edi
cmp dword [edi], 3
jne 0x518286
shl ecx, 4
mov edi, ebp
mov ebp, dword [esp + 0x1b0]
add ecx, ebp
jmp 0x5182ce
mov ebp, dword [esp + 0x1b0]
mov edi, dword [esp + 0x2bc]
xor ecx, ecx
test ecx, ecx
je 0x5182ea
mov edi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xc8], ecx
mov ecx, edi
mov edi, dword [esp + 0x2bc]
jmp 0x5182f7
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc8], eax
xor eax, eax
lea edx, [0x5c2b40]
cmp ecx, edx
jne 0x51830f
mov ecx, dword [esp + 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x518313
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
xor eax, eax
mov dword [esp + 0x68], eax
xor eax, eax
jmp 0x518342
mov ecx, dword [esp + 0xbc]
add ecx, 0x10
inc ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x68]
cmp ebx, esi
jge 0x518364
mov ecx, dword [esp + 0xbc]
cmp dword [ecx], 0x3e
jne 0x518321
shl ebx, 4
lea ecx, [ebx + ebp]
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
jmp 0x518366
xor ebx, ebx
test ebx, ebx
je 0x518372
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x518376
xor ebp, ebp
xor ebx, ebx
mov esi, ecx
lea ecx, [0x5c2d00]
cmp ebp, ecx
jne 0x518389
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x518393
mov ebp, 0
mov ebx, 0
jne 0x51863d
mov dword [esp + 0x130], edx
test ebx, ebx
sete bl
setl cl
cmp ebp, 4
xchg edi, ebx
setbe bl
xchg edi, ebx
and edi, ebx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5184d6
cmp ebp, 2
xchg edi, ebx
setbe bl
xchg edi, ebx
and edi, ebx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x518440
cmp ebp, 1
sete cl
and ecx, ebx
test cl, cl
jne 0x518418
cmp ebp, 2
sete cl
and ecx, ebx
test cl, cl
je 0x51858a
lea eax, [0x5c8440]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x6359e0]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
lea eax, [0x5c83e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x6359c4]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
cmp ebp, 3
sete cl
and ecx, ebx
test cl, cl
je 0x5184ae
lea eax, [0x5c84a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x3c]
cmp eax, 7
jne 0x5184a2
mov ecx, dword [esp + 0x130]
cmp dword [ecx], 0x706d6f63
jne 0x5189fc
cmp word [ecx + 4], 0x656c
jne 0x5189fc
cmp byte [ecx + 6], 0x78
jne 0x5189fc
mov edx, dword [esp + 0x16c]
mov ebx, dword [edx + 0xc]
mov ebp, ebx
mov esi, dword [edx + 0x10]
xor edi, edi
jmp 0x518a1c
mov ecx, dword [esp + 0x130]
jmp 0x5189fc
lea eax, [0x5c8500]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x635a34]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
cmp ebp, 6
xchg edi, ebx
setbe bl
xchg edi, ebx
and edi, ebx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x518546
cmp ebp, 5
sete cl
and ecx, ebx
test cl, cl
je 0x51851e
lea eax, [0x5c8560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x63598c]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
lea eax, [0x5c8620]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x6359fc]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
cmp ebp, 7
sete cl
and ecx, ebx
test cl, cl
jne 0x518615
cmp ebp, 8
sete cl
and ecx, ebx
test cl, cl
je 0x51858a
lea eax, [0x5c8680]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x635a6c]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
lea edi, [esp + 0x204]
call fcn.0046ab9b
mov dword [esp + 0x204], edx
mov dword [esp + 0x208], esi
mov ecx, dword [esp + 0x16c]
mov ecx, dword [ecx]
mov dword [esp + 0x20c], ecx
lea ecx, [0x5f94f8]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], 0x25
lea edi, [esp + 0x28c]
lea esi, [esp + 0x204]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
lea eax, [0x5c85c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x635970]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
jmp 0x5186ec
lea edi, [esp + 0x218]
call fcn.0046ab9b
mov dword [esp + 0x218], edx
mov dword [esp + 0x21c], esi
mov ecx, dword [esp + 0x16c]
mov ecx, dword [ecx]
mov dword [esp + 0x220], ecx
mov dword [esp], 0
lea ecx, [0x5f71ca]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1f
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
call sym.runtime.concatstring2
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], edx
lea edi, [esp + 0x28c]
lea esi, [esp + 0x218]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
mov dword [esp + 0x130], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x100], eax
lea ebp, [0x5c4340]
mov dword [esp], ebp
mov esi, dword [esp + 0x2c0]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x2bc]
mov dword [esp + 8], edi
call sym.runtime.mapassign_fast32
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov edx, dword [0x776350]
test edx, edx
jne 0x518743
mov edx, dword [esp + 0x100]
jmp 0x518757
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x100]
mov dword [edi], edx
mov ebx, dword [eax + 4]
mov dword [edi + 4], ebx
mov dword [eax + 4], edx
test ecx, ecx
je 0x5189ee
mov eax, dword [ecx + 4]
lea edx, [0x730428]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.typeAssert
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x100]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], ecx
mov edx, dword [0x776350]
test edx, edx
jne 0x5187a8
mov edx, dword [esp + 0x130]
jmp 0x5187bc
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x130]
mov dword [edi], edx
mov ebx, dword [eax + 8]
mov dword [edi + 4], ebx
mov dword [eax + 8], edx
mov ebx, dword [esp + 0x16c]
mov ebp, dword [ebx + 0xc]
mov esi, ebp
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x98]
jmp 0x5187f7
mov ebp, dword [esp + 0xbc]
add ebp, 0x10
inc ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
cmp ecx, edi
jge 0x518813
mov dword [esp + 0xbc], ebp
cmp dword [ebp], 0xd
jne 0x5187e4
shl ecx, 4
add ecx, esi
jmp 0x518815
xor ecx, ecx
test ecx, ecx
je 0x518821
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x518825
xor ebp, ebp
xor ecx, ecx
mov esi, edx
lea edx, [0x5c2d00]
cmp ebp, edx
jne 0x518838
mov ebp, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x51883c
xor ecx, ecx
xor ebp, ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ecx
mov ecx, dword [ebx + 0xc]
mov ebp, ecx
mov edi, dword [ebx + 0x10]
xor edx, edx
mov dword [esp + 0x60], edx
lea edx, [0x5c2d00]
jmp 0x51886e
mov ecx, dword [esp + 0xbc]
add ecx, 0x10
inc ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x60]
cmp ebx, edi
jge 0x51888a
mov dword [esp + 0xbc], ecx
cmp dword [ecx], 0xc
jne 0x518858
shl ebx, 4
lea ecx, [ebx + ebp]
jmp 0x51888c
xor ecx, ecx
test ecx, ecx
je 0x518898
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x51889c
xor ebx, ebx
xor ecx, ecx
cmp ebx, edx
jne 0x5188a7
mov ebp, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x5188ab
xor ecx, ecx
xor ebp, ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov ebp, dword [ecx + 0xc]
mov edi, ebp
mov esi, dword [ecx + 0x10]
xor edx, edx
mov dword [esp + 0x5c], edx
lea edx, [0x5c2d00]
jmp 0x5188e4
mov ebp, dword [esp + 0xbc]
add ebp, 0x10
inc ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x5c]
cmp ecx, esi
jge 0x518900
mov dword [esp + 0xbc], ebp
cmp dword [ebp], 0x6b
jne 0x5188ce
shl ecx, 4
add ecx, edi
jmp 0x518902
xor ecx, ecx
test ecx, ecx
je 0x51890e
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x518912
xor ebp, ebp
xor ecx, ecx
cmp ebp, edx
jne 0x51891f
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
cmp ebx, edx
jmp 0x51892b
cmp ebx, edx
mov ecx, 0
mov esi, 0
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], ecx
jne 0x5189d7
cmp ebp, edx
jne 0x5189d7
lea edi, [esp + 0x1f0]
xor eax, eax
call fcn.0046ab9b
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x1f0], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esp + 0x16c]
mov ecx, dword [ecx]
mov dword [esp + 0x1f8], ecx
lea ecx, [0x5f71e9]
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x200], 0x1f
lea edi, [esp + 0x28c]
lea esi, [esp + 0x1f0]
call fcn.0046b07e
lea ecx, [0x5d8bc0]
mov dword [esp], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov ecx, dword [esp + 8]
lea edx, [0x634be4]
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ecx
jmp 0x5169b3
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x100]
jmp 0x51699c
lea eax, [0x5c43c0]
mov dword [esp], eax
call sym.runtime.panicnildottype
mov ebp, dword [esp + 4]
mov edx, ecx
mov ebx, eax
mov eax, ebp
lea ecx, [0x635a50]
jmp 0x5186ec
mov ebx, dword [esp + 0xbc]
add ebx, 0x10
inc edi
cmp edi, esi
jge 0x518a34
mov dword [esp + 0xbc], ebx
cmp dword [ebx], 0xb
jne 0x518a11
shl edi, 4
lea ebx, [edi + ebp]
jmp 0x518a36
xor ebx, ebx
test ebx, ebx
je 0x518a42
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx + 8]
jmp 0x518a46
xor ebp, ebp
xor ebx, ebx
lea esi, [0x5c2d00]
cmp ebp, esi
jne 0x518a57
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
jmp 0x518a5b
xor ebx, ebx
xor ebp, ebp
test ebx, ebx
sete bl
cmp ebp, 8
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x518a82
mov eax, 0xd
lea ecx, [0x5efcd8]
jmp 0x5189fc
cmp ebp, 0x10
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5189fc
mov eax, 0xe
lea ecx, [0x5f02a2]
jmp 0x5189fc
call sym.runtime.morestack_noctxt
jmp sym.debug_dwarf._Data_.readType