Function at 0x4b5650
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x32c]
cmp eax, dword [ecx + 8]
jbe 0x4b7c6b
sub esp, 0x3ac
nop
lea eax, [0x4e17c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3b0]
mov dword [eax], ecx
mov edx, dword [0x5c5260]
test edx, edx
jne 0x4b56a0
mov edx, dword [esp + 0x3b4]
jmp 0x4b56ae
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x3b4]
mov dword [edi], edx
mov dword [esp + 0x2ec], eax
mov dword [eax + 4], edx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0x7fffffff
lea ecx, [0x4d6880]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 0x3b0]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 4]
mov dword [esp + 0x318], ecx
mov edx, dword [esp + 0x3b4]
mov dword [esp], edx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], 0x10
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4b6115
mov eax, dword [esp + 0x318]
cmp byte [eax], 0x7f
jne 0x4b575f
cmp byte [eax + 1], 0x45
jne 0x4b575f
cmp byte [eax + 2], 0x4c
jne 0x4b575f
cmp byte [eax + 3], 0x46
je 0x4b57fb
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x10
lea ecx, [0x4ef7fb]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x318]
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [esp + 8], 0x10
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x4d4ba0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b57d2
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x4e4560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x308], eax
mov ecx, dword [esp + 0x318]
movzx edx, byte [ecx + 4]
mov byte [eax], dl
movzx edx, dl
cmp dl, 1
je 0x4b5832
cmp dl, 2
jne 0x4b60ae
movzx edx, byte [ecx + 5]
mov byte [eax + 1], dl
movzx edx, dl
cmp dl, 1
jne 0x4b5855
lea edx, [0x514ea4]
mov dword [eax + 8], edx
lea edx, [0x5c5040]
mov dword [eax + 0xc], edx
jmp 0x4b5870
cmp dl, 2
jne 0x4b6046
lea edx, [0x514ed0]
mov dword [eax + 8], edx
lea edx, [0x5c5040]
mov dword [eax + 0xc], edx
movzx edx, byte [ecx + 6]
mov byte [eax + 2], dl
movzx edx, dl
cmp dl, 1
jne 0x4b5fde
movzx edx, byte [ecx + 7]
mov byte [eax + 3], dl
movzx ecx, byte [ecx + 8]
mov byte [eax + 4], cl
movzx ecx, byte [eax]
cmp cl, 1
je 0x4b5a7a
cmp cl, 2
je 0x4b58c9
xor edi, edi
xor esi, esi
xor edx, edx
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x68], edx
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
xor edx, edx
xor ecx, ecx
jmp 0x4b5b75
lea edi, [esp + 0x2a8]
xor eax, eax
call fcn.0045fb30
mov ecx, dword [esp + 0x2ec]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
nop
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], ebx
mov edx, dword [esp + 0x308]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
lea esi, [0x514b1c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x4d38a0]
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x2a8]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b5a52
movzx eax, word [esp + 0x2b8]
mov ecx, dword [esp + 0x308]
mov word [ecx + 0x10], ax
movzx eax, word [esp + 0x2ba]
mov word [ecx + 0x12], ax
mov eax, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2c4]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [esp + 0x2bc]
cmp byte [ecx + 2], al
jne 0x4b59e4
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x2cc]
movzx ebx, word [esp + 0x2de]
movzx ebp, word [esp + 0x2e0]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2d4]
movzx ecx, word [esp + 0x2e2]
movzx eax, word [esp + 0x2e4]
mov dword [esp + 0xac], eax
movzx eax, word [esp + 0x2e6]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xac]
jmp 0x4b5b75
mov dword [esp + 0xa8], eax
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x16
lea ecx, [0x4f15ac]
mov dword [eax + 8], ecx
lea ecx, [0x4dbce0]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xa8]
movzx ecx, cl
lea edx, [0x5989e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x514b08]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
lea edi, [esp + 0x14c]
xor eax, eax
call fcn.0045fb33
mov ecx, dword [esp + 0x2ec]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
nop
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], ebx
mov edx, dword [esp + 0x308]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
lea esi, [0x514b1c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x4d3860]
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x14c]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b5fb6
movzx eax, word [esp + 0x15c]
mov ecx, dword [esp + 0x308]
mov word [ecx + 0x10], ax
movzx eax, word [esp + 0x15e]
mov word [ecx + 0x12], ax
mov eax, dword [esp + 0x164]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x160]
cmp byte [ecx + 2], al
jne 0x4b5f48
mov eax, dword [esp + 0x168]
movzx ebx, word [esp + 0x176]
movzx ebp, word [esp + 0x178]
mov esi, dword [esp + 0x16c]
movzx edx, word [esp + 0x17a]
movzx edi, word [esp + 0x17c]
movzx ecx, word [esp + 0x17e]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], edx
xor edx, edx
mov ecx, eax
mov ebx, edi
mov eax, dword [esp + 0x308]
xor edi, edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
test edi, edi
jl 0x4b5eb7
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
test edx, edx
jl 0x4b5e26
mov dword [esp + 0x44], ebx
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x4b5c4d
test ebx, ebx
jne 0x4b5bc4
mov esi, dword [esp + 0x38]
jmp 0x4b5cee
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x1d
lea ecx, [0x4f3769]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b5c24
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
test ebx, ebx
jle 0x4b5cea
mov esi, dword [esp + 0x38]
cmp esi, ebx
jl 0x4b5cee
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x14
lea ecx, [0x4f0acd]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b5cc1
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov esi, dword [esp + 0x38]
movzx esi, byte [eax]
xchg esi, eax
cmp al, 1
xchg esi, eax
jne 0x4b5d0d
mov esi, 0x20
mov esi, 0x28
mov dword [esp + 0x28], esi
mov esi, 0x20
jmp 0x4b5d33
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x4b5d29
mov esi, 0x38
mov esi, 0x40
mov dword [esp + 0x28], esi
mov esi, 0x38
jmp 0x4b5d33
xor esi, esi
xor esi, esi
mov dword [esp + 0x28], esi
xor esi, esi
xchg edi, eax
mov byte [esp + 0x27], al
xchg edi, eax
test ebp, ebp
jle 0x4b5dd6
mov ebx, dword [esp + 0x68]
cmp ebx, esi
jge 0x4b5dd6
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x15
lea ecx, [0x4f1046]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b5dad
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x64], ebp
lea eax, [0x4dd120]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x308]
mov dword [edx + 0x2c], ecx
mov dword [edx + 0x30], ecx
mov ebx, dword [0x5c5260]
test ebx, ebx
je 0x4b5e1c
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0x28]
mov dword [edi + 4], ebx
mov dword [edx + 0x28], eax
xor eax, eax
jmp 0x4b6149
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0xd
lea ecx, [0x4eecd4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d8300]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b5e8e
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0xd
lea ecx, [0x4eecc7]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d8300]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b5f1f
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0xa8], eax
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x16
lea ecx, [0x4f15ac]
mov dword [eax + 8], ecx
lea ecx, [0x4dbce0]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xa8]
movzx ecx, cl
lea edx, [0x5989e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x514b08]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x13
lea ecx, [0x4f05fd]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx + 2]
lea edx, [0x4dbce0]
mov dword [eax + 0x10], edx
lea edx, [0x5989e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x514b08]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x19
lea ecx, [0x4f25ba]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx + 1]
lea edx, [0x4dbc80]
mov dword [eax + 0x10], edx
lea edx, [0x5989e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x514b08]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x11
lea ecx, [0x4efc02]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx]
lea edx, [0x4dbbc0]
mov dword [eax + 0x10], edx
lea edx, [0x5989e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x514b08]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov dword [edi + ebp*4], ebx
lea eax, [ebp + 1]
mov ecx, dword [esp + 0x64]
mov edx, esi
cmp eax, ecx
jge 0x4b6782
mov dword [esp + 0x8c], eax
mov ebx, eax
sar ebx, 0x1f
mov ebp, dword [esp + 0x68]
mov edi, eax
mul ebp
imul ebx, ebp
add edx, ebx
sar ebp, 0x1f
imul ebp, edi
add edx, ebp
mov ebp, dword [esp + 0x2ec]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xa8], ebx
mov ecx, dword [ebp + 0xc]
nop
mov edi, dword [esp + 0x5c]
add eax, edi
mov dword [esp + 0x70], eax
mov edi, dword [esp + 0x60]
adc edx, edi
mov dword [esp + 0x78], edx
add ebx, eax
adc edx, ecx
cmp ecx, edx
sete cl
xchg edi, ebx
setg bl
xchg edi, ebx
mov esi, dword [esp + 0xa8]
cmp ebx, esi
xchg esi, ebx
setb bl
xchg esi, ebx
and ecx, esi
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4b61cb
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], edx
lea eax, [0x4e27a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x308]
movzx ecx, byte [eax]
mov edx, dword [esp + 4]
mov dword [esp + 0x300], edx
cmp cl, 1
je 0x4b6355
cmp cl, 2
jne 0x4b6488
lea edi, [esp + 0x1b8]
xor eax, eax
call fcn.0045fb32
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x514b1c]
mov dword [esp], ebp
mov esi, dword [esp + 0x2ec]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
lea edx, [0x4d3920]
mov dword [esp + 0x10], edx
lea ebx, [esp + 0x1b8]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b65ec
lea edi, [esp + 0x180]
xor eax, eax
call fcn.0045fb32
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1cc]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], edx
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d4]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x1dc]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], edx
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1e4]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], edx
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1ec]
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1b4], edx
mov edi, dword [esp + 0x300]
lea esi, [esp + 0x180]
call fcn.0045ffc4
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x300]
jmp 0x4b6488
lea edi, [esp + 0xdc]
xor eax, eax
call fcn.0045fb38
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x514b1c]
mov dword [esp], ebp
mov esi, dword [esp + 0x2ec]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
lea edx, [0x4d38e0]
mov dword [esp + 0x10], edx
lea ebx, [esp + 0xdc]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b675a
lea edi, [esp + 0x1f0]
xor eax, eax
call fcn.0045fb32
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x1f0], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x200], ecx
mov dword [esp + 0x204], 0
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x208], ecx
mov dword [esp + 0x20c], 0
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], 0
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], 0
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x220], ecx
mov dword [esp + 0x224], 0
mov edi, dword [esp + 0x300]
lea esi, [esp + 0x1f0]
call fcn.0045ffc4
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x300]
mov ecx, dword [edx + 0xc]
test ecx, ecx
jl 0x4b66b7
mov ebx, dword [edx + 0x24]
test ebx, ebx
jl 0x4b6614
mov dword [esp + 0xa8], ecx
mov ebp, dword [edx + 8]
mov dword [esp + 0xa4], ebp
mov esi, dword [edx + 0x20]
mov edi, 0xffffffff
sub edi, esi
mov eax, 0x7fffffff
sbb eax, ebx
cmp ecx, eax
sete al
setl dl
cmp edi, ebp
xchg edi, ebx
setae bl
xchg edi, ebx
and eax, edi
or edx, eax
test dl, dl
je 0x4b64df
add esi, ebp
adc ebx, ecx
jmp 0x4b64e9
mov ebx, 0x7fffffff
mov esi, 0xffffffff
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], ebx
lea eax, [0x4e17c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3b0]
mov dword [eax], ecx
mov edx, dword [0x5c5260]
test edx, edx
jne 0x4b651f
mov edx, dword [esp + 0x3b4]
jmp 0x4b652d
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x3b4]
mov dword [edi], edx
mov dword [eax + 4], edx
mov ebx, dword [esp + 0xa4]
mov dword [eax + 8], ebx
mov ebp, dword [esp + 0xa8]
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebp
mov ebx, dword [esp + 0x50]
mov dword [eax + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [eax + 0x1c], ebx
mov ebx, dword [0x5c5260]
test ebx, ebx
jne 0x4b656b
mov ebx, dword [esp + 0x300]
jmp 0x4b657f
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [esp + 0x300]
mov ebp, dword [ebx + 0x40]
mov dword [edi + 4], ebp
mov dword [ebx + 0x40], eax
lea ebp, [0x514a68]
mov dword [ebx + 0x38], ebp
mov esi, dword [0x5c5260]
test esi, esi
je 0x4b65a2
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebx + 0x3c]
mov dword [edi + 4], esi
mov dword [ebx + 0x3c], eax
mov esi, dword [esp + 0x308]
mov eax, dword [esi + 0x2c]
mov ebp, dword [esp + 0x8c]
cmp ebp, eax
jae 0x4b7c61
mov eax, dword [0x5c5260]
mov edi, dword [esi + 0x28]
test eax, eax
je 0x4b613d
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [eax + ebp*4]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x3b4]
mov edi, eax
jmp 0x4b613d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x20
lea ecx, [0x4f4338]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x300]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d84c0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b668e
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x1d
lea ecx, [0x4f3786]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x300]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d84c0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b6731
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov ecx, dword [esp + 0x40]
test ecx, ecx
setg bl
mov ebp, dword [esp + 0x3c]
test ebp, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
mov eax, edx
movzx edx, byte [esp + 0x27]
and esi, edx
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4b6b89
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4b6b78
mov edx, dword [esp + 0x2ec]
mov ebx, dword [edx + 8]
mov esi, dword [edx + 0xc]
mov dword [esp + 0xa0], esi
nop
mov edi, ebx
add ebx, ebp
adc esi, ecx
mov ecx, dword [esp + 0xa0]
cmp ecx, esi
sete cl
xchg ebp, ebx
setg bl
xchg ebp, ebx
cmp ebx, edi
xchg edi, ebx
setb bl
xchg edi, ebx
and ecx, edi
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4b6800
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], esi
movzx ecx, byte [eax]
cmp cl, 1
je 0x4b68c2
cmp cl, 2
je 0x4b681c
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x4b693f
lea edi, [esp + 0x268]
xor eax, eax
call fcn.0045fb30
mov ecx, dword [esp + 0x308]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
lea esi, [0x514b1c]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x4d39a0]
mov dword [esp + 0x10], ebx
lea ebp, [esp + 0x268]
mov dword [esp + 0x14], ebp
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b689a
mov eax, dword [esp + 0x288]
mov ecx, dword [esp + 0x26c]
mov edx, dword [esp + 0x290]
mov ebx, eax
mov ebp, edx
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x2ec]
jmp 0x4b693f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
lea edi, [esp + 0x124]
xor eax, eax
call fcn.0045fb36
mov ecx, dword [esp + 0x308]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
lea esi, [0x514b1c]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x4d3960]
mov dword [esp + 0x10], ebx
lea ebp, [esp + 0x124]
mov dword [esp + 0x14], ebp
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b6b50
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x13c]
mov ebx, eax
mov ebp, edx
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x2ec]
test ecx, ecx
jne 0x4b6ab6
cmp ebx, 0xff00
jl 0x4b6a16
mov ecx, dword [esp + 0x38]
cmp ecx, 0xffff
jne 0x4b6a0f
cmp ebp, 0xff00
jge 0x4b6b98
mov dword [esp + 0x9c], ebp
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x29
lea ecx, [0x4f5e78]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b69e6
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov ebp, ecx
jmp 0x4b6b98
mov dword [esp + 0x98], ebx
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x26
lea ecx, [0x4f5723]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b6a8d
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x2c], ecx
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x23
lea ecx, [0x4f4cf5]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4dbe60]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b6b27
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov edx, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
jmp 0x4b6b98
mov edx, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], ebp
test ebx, ebx
jle 0x4b6c3d
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
cmp ecx, esi
jge 0x4b6c3d
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x15
lea ecx, [0x4f105b]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b6c14
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x44], ebx
lea eax, [0x4e0ae0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, ebx
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
call sym.internal_saferio.SliceCap
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x4b6cf9
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov dword [eax + 0xc], 0x11
lea ecx, [0x4efc13]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d8240]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b6cd0
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x90], eax
lea ecx, [0x4e0ae0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x308]
mov dword [ecx + 0x20], 0
mov edx, dword [esp + 0x90]
mov dword [ecx + 0x24], edx
mov ebx, dword [0x5c5260]
test ebx, ebx
je 0x4b6d4d
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x1c]
mov dword [edi + 4], ebx
mov dword [ecx + 0x1c], eax
lea eax, [0x4d83c0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], edx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov edx, dword [esp + 0x90]
xor ebx, ebx
jmp 0x4b6d9b
mov dword [eax + edi*4 - 4], ebx
mov esi, dword [esp + 0x88]
inc esi
mov ecx, esi
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x304]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x304], eax
mov ebp, dword [esp + 0x44]
cmp ecx, ebp
jge 0x4b7848
mov dword [esp + 0x88], ecx
mov dword [esp + 0x80], edx
mov esi, ecx
sar ecx, 0x1f
mov eax, esi
mov ebp, dword [esp + 0x48]
mul ebp
imul ecx, ebp
add ecx, edx
sar ebp, 0x1f
imul ebp, esi
add ecx, ebp
mov ebp, dword [esp + 0x2ec]
mov edx, dword [ebp + 8]
mov dword [esp + 0xa8], edx
mov esi, dword [ebp + 0xc]
nop
mov ebx, dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x40]
adc ecx, ebx
mov dword [esp + 0x74], ecx
add edx, eax
adc ecx, esi
cmp esi, ecx
xchg esi, ebx
sete bl
xchg esi, ebx
setg bl
mov edi, dword [esp + 0xa8]
cmp edx, edi
xchg edi, ebx
setb bl
xchg edi, ebx
and esi, edi
or ebx, esi
test bl, bl
jne 0x4b6e31
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ecx
lea eax, [0x4e4ba0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x308]
movzx ecx, byte [eax]
mov edx, dword [esp + 4]
mov dword [esp + 0x2fc], edx
cmp cl, 1
je 0x4b708f
cmp cl, 2
je 0x4b6e79
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x304]
jmp 0x4b7286
lea edi, [esp + 0x228]
xor eax, eax
call fcn.0045fb30
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x514b1c]
mov dword [esp], ebp
mov esi, dword [esp + 0x2ec]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
lea edx, [0x4d39a0]
mov dword [esp + 0x10], edx
lea ebx, [esp + 0x228]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b7662
mov ecx, dword [esp + 0x7c]
inc ecx
mov edx, dword [esp + 0x228]
mov ebx, dword [esp + 0x80]
cmp ebx, ecx
jb 0x4b6ef6
mov eax, dword [esp + 0x304]
jmp 0x4b6f3b
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x304]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x4d83c0]
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, dword [esp + 0xa8]
mov dword [esp + 0x7c], ecx
mov dword [eax + ecx*4 - 4], edx
lea edi, [esp + 0x31c]
mov edx, eax
xor eax, eax
call fcn.0045fb2e
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0x324], ecx
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x328], ecx
mov ecx, dword [esp + 0x240]
mov ebp, dword [esp + 0x244]
mov dword [esp + 0x334], ecx
mov dword [esp + 0x338], ebp
mov ecx, dword [esp + 0x248]
mov ebp, dword [esp + 0x24c]
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x360], ebp
mov ecx, dword [esp + 0x238]
mov ebp, dword [esp + 0x23c]
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x330], ebp
mov ecx, dword [esp + 0x250]
mov dword [esp + 0x344], ecx
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x348], ecx
mov ecx, dword [esp + 0x258]
mov ebp, dword [esp + 0x25c]
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x350], ebp
mov ecx, dword [esp + 0x260]
mov ebp, dword [esp + 0x264]
mov dword [esp + 0x354], ecx
mov dword [esp + 0x358], ebp
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b7063
mov dword [esp + 0x310], edx
mov dword [esp + 0x98], ebx
lea eax, [0x4e7340]
mov dword [esp], eax
mov eax, dword [esp + 0x2fc]
mov dword [esp + 4], eax
lea ecx, [esp + 0x31c]
mov dword [esp + 8], ecx
call sym.runtime.wbMove
xor eax, eax
mov edx, dword [esp + 0x310]
mov ebx, dword [esp + 0x98]
mov edi, dword [esp + 0x2fc]
lea esi, [esp + 0x31c]
call fcn.0045ff9c
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x7c]
mov ebp, edx
mov edx, dword [esp + 0x2fc]
jmp 0x4b7286
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.0045fb36
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x514b1c]
mov dword [esp], ebp
mov esi, dword [esp + 0x2ec]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
lea edx, [0x4d3960]
mov dword [esp + 0x10], edx
lea ebx, [esp + 0xfc]
mov dword [esp + 0x14], ebx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b7820
mov ecx, dword [esp + 0x7c]
inc ecx
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x80]
cmp ebx, ecx
jb 0x4b710c
mov eax, dword [esp + 0x304]
jmp 0x4b7151
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x304]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x4d83c0]
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, dword [esp + 0xa8]
mov dword [esp + 0x7c], ecx
mov dword [eax + ecx*4 - 4], edx
lea edi, [esp + 0x364]
mov edx, eax
xor eax, eax
call fcn.0045fb2e
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x36c], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x370], ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x374], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x380], 0
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3a8], 0
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x38c], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x390], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x394], ecx
mov dword [esp + 0x398], 0
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x3a0], 0
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b725f
mov dword [esp + 0x310], edx
mov dword [esp + 0x94], ebx
lea eax, [0x4e7340]
mov dword [esp], eax
mov eax, dword [esp + 0x2fc]
mov dword [esp + 4], eax
lea ecx, [esp + 0x364]
mov dword [esp + 8], ecx
call sym.runtime.wbMove
xor eax, eax
mov edx, dword [esp + 0x310]
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x2fc]
lea esi, [esp + 0x364]
call fcn.0045ff9c
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x7c]
mov ebp, edx
mov edx, dword [esp + 0x2fc]
mov esi, dword [edx + 0x1c]
test esi, esi
jl 0x4b777d
mov edi, dword [edx + 0x44]
test edi, edi
jl 0x4b76da
mov dword [esp + 0xa8], esi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x304], ebp
mov ecx, dword [edx + 0x18]
mov dword [esp + 0xa4], ecx
mov ebx, dword [edx + 0x40]
mov ebp, 0xffffffff
sub ebp, ebx
mov eax, 0x7fffffff
sbb eax, edi
cmp esi, eax
sete al
setl dl
cmp ebp, ecx
xchg ebp, ebx
setae bl
xchg ebp, ebx
and eax, ebp
or edx, eax
test dl, dl
je 0x4b72ef
add ebx, ecx
adc edi, esi
jmp 0x4b72f9
mov edi, 0x7fffffff
mov ebx, 0xffffffff
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], edi
lea eax, [0x4e17c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3b0]
mov dword [eax], ecx
mov edx, dword [0x5c5260]
test edx, edx
jne 0x4b732f
mov edx, dword [esp + 0x3b4]
jmp 0x4b733d
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x3b4]
mov dword [edi], edx
mov dword [eax + 4], edx
mov ebx, dword [esp + 0xa4]
mov dword [eax + 8], ebx
mov ebp, dword [esp + 0xa8]
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebp
mov ebx, dword [esp + 0x4c]
mov dword [eax + 0x18], ebx
mov ebx, dword [esp + 0x54]
mov dword [eax + 0x1c], ebx
mov ebx, dword [0x5c5260]
test ebx, ebx
jne 0x4b737b
mov ebx, dword [esp + 0x2fc]
jmp 0x4b738f
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [ebx + 0x50]
mov dword [edi + 4], ebp
mov dword [ebx + 0x50], eax
mov ebp, dword [ebx + 0xc]
test ebp, 0x800
jne 0x4b73d8
lea ebp, [0x514a68]
mov dword [ebx + 0x48], ebp
mov esi, dword [0x5c5260]
test esi, esi
je 0x4b73bd
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebx + 0x4c]
mov dword [edi + 4], esi
mov dword [ebx + 0x4c], eax
mov esi, dword [ebx + 0x40]
mov edi, dword [ebx + 0x44]
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
mov ebp, dword [esp + 0x308]
jmp 0x4b75b3
mov ebp, dword [esp + 0x308]
movzx esi, byte [ebp]
xchg esi, eax
cmp al, 1
xchg esi, eax
je 0x4b74d2
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x4b75b3
lea edi, [esp + 0xc4]
xor eax, eax
call fcn.0045fb3a
mov ecx, dword [ebx + 0x50]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
lea ebp, [0x514b1c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
lea ecx, [0x4d3720]
mov dword [esp + 0x10], ecx
lea edx, [esp + 0xc4]
mov dword [esp + 0x14], edx
call sym.encoding_binary.Read
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b768a
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x2fc]
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
lea eax, [0x4d3720]
mov dword [esp], eax
lea edx, [esp + 0xc4]
mov dword [esp + 4], edx
call sym.encoding_binary.Size
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x2fc]
mov dword [ecx + 0x58], eax
sar eax, 0x1f
mov dword [ecx + 0x5c], eax
mov ecx, dword [esp + 0x3b0]
mov edx, dword [esp + 0x3b4]
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x308]
jmp 0x4b75b3
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
lea esi, [0x514b1c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
lea eax, [0x4d36e0]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xb8]
mov dword [esp + 0x14], ecx
call sym.encoding_binary.Read
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4b76b2
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x2fc]
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0xbc]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], 0
mov eax, dword [esp + 0xc0]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], 0
lea eax, [0x4d36e0]
mov dword [esp], eax
lea edx, [esp + 0xb8]
mov dword [esp + 4], edx
call sym.encoding_binary.Size
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x2fc]
mov dword [ecx + 0x58], eax
sar eax, 0x1f
mov dword [ecx + 0x5c], eax
mov ecx, dword [esp + 0x3b0]
mov edx, dword [esp + 0x3b4]
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x308]
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
inc edi
mov eax, dword [ebp + 0x1c]
cmp esi, edi
jae 0x4b7633
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4e0ae0]
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 + 0x308]
mov dword [ebx + 0x24], eax
mov eax, dword [0x5c5260]
test eax, eax
je 0x4b7610
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x308]
mov edi, edx
mov eax, ecx
mov ecx, dword [esp + 0x3b0]
mov edx, dword [esp + 0x3b4]
mov dword [ebp + 0x20], edi
mov esi, dword [0x5c5260]
test esi, esi
je 0x4b6d7b
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [eax + esi*4 - 4]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x3b4]
mov edi, esi
jmp 0x4b6d7b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x14
lea ecx, [0x4f0ae1]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2fc]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d8300]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b7754
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 0x16
lea ecx, [0x4f15c2]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2fc]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x4d8300]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b77f7
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov edx, dword [esp + 0x308]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x4b79ea
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x4b79c6
cmp ebp, ecx
jae 0x4b7c5a
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + ebp*4]
cmp dword [ecx + 8], 3
je 0x4b7935
mov dword [esp + 0x2f4], ecx
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
imul ecx, edx
mov edx, ecx
sar ecx, 0x1f
mov ebx, dword [esp + 0x3c]
add edx, ebx
mov dword [eax], edx
mov edx, dword [esp + 0x40]
adc edx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xc], 0x2a
lea ecx, [0x4f6099]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2f4]
mov ecx, dword [ecx + 8]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4dbe60]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b790c
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp], ecx
call sym.debug_elf._Section_.Data
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4b799e
mov edx, dword [esp + 0x308]
mov ebx, dword [edx + 0x1c]
mov dword [esp + 0x30c], ebx
mov ebp, dword [edx + 0x20]
mov dword [esp + 0xac], ebp
mov esi, dword [esp + 8]
mov dword [esp + 0x30], esi
mov edi, dword [esp + 4]
mov dword [esp + 0x2f0], edi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x304]
mov dword [esp + 0xb0], eax
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xb0]
jmp 0x4b7a3c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], ecx
add esp, 0x3ac
ret
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3c0], 0
add esp, 0x3ac
ret
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3c0], 0
add esp, 0x3ac
ret
lea eax, [edx + 1]
mov edx, dword [esp + 0x304]
mov edi, dword [esp + 0x30c]
mov ecx, edx
mov edx, dword [esp + 0x308]
mov ebx, edi
mov edi, dword [esp + 0x2f0]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x84]
cmp edx, ebp
jge 0x4b7b59
mov eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
jbe 0x4b7c51
mov ecx, dword [ecx + edx*4]
test ecx, ecx
jl 0x4b7a65
cmp esi, ecx
jg 0x4b7a7d
xor ecx, ecx
xor ecx, ecx
mov byte [esp + 0x26], cl
xor ecx, ecx
mov dword [esp + 0x2e8], ecx
xor ecx, ecx
jmp 0x4b7b14
mov dword [esp + 0xa8], ecx
jmp 0x4b7b89
mov dword [esp + 0x2f8], eax
mov dword [esp], 0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
add eax, edi
mov dword [esp + 4], eax
sub ecx, edx
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2f0]
mov edx, 1
mov byte [esp + 0x26], dl
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x84]
jmp 0x4b7b14
xor ecx, ecx
xor ecx, ecx
mov byte [esp + 0x26], cl
xor ecx, ecx
mov dword [esp + 0x2e8], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b7b3f
call sym.runtime.gcWriteBarrier2
mov esi, dword [esp + 0x2e8]
mov dword [edi], esi
mov ecx, dword [eax]
mov dword [edi + 4], ecx
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2f0]
mov edi, dword [esp + 0x2e8]
mov dword [eax], edi
movzx edi, byte [esp + 0x26]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4b7a0e
jmp 0x4b7b9e
mov eax, dword [esp + 0x308]
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3c0], 0
add esp, 0x3ac
ret
inc ecx
mov ebx, dword [esp + 0x7c]
cmp ecx, esi
jge 0x4b7b01
movzx ebx, byte [edi + ecx]
test bl, bl
jne 0x4b7b84
jmp 0x4b7a89
lea eax, [0x4e0960]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x314], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x48]
imul edx, ecx
mov ebx, edx
sar edx, 0x1f
mov ebp, dword [esp + 0x3c]
add ebx, ebp
mov dword [eax], ebx
mov ebx, dword [esp + 0x40]
adc ebx, edx
mov dword [eax + 4], ebx
mov dword [eax + 0xc], 0x16
lea edx, [0x4f15d8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x304]
mov ecx, dword [edx + ecx*4]
mov dword [esp], ecx
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4d83c0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
je 0x4b7c28
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov dword [esp + 0x3b8], 0
lea eax, [0x514b08]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicIndex
mov ecx, eax
mov eax, ebp
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.debug_elf.NewFile