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

Disassembly:
mov ecx, dword [0x6dded4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x32c]
cmp eax, dword [ecx + 8]
jbe 0x51d33b
sub esp, 0x3ac
nop
lea eax, [0x5608e0]
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 [0x6ddfe0]
test edx, edx
jne 0x51ad70
mov edx, dword [esp + 0x3b4]
jmp 0x51ad7e
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, [0x54e9e0]
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 0x51b7e5
mov eax, dword [esp + 0x318]
cmp byte [eax], 0x7f
jne 0x51ae2f
cmp byte [eax + 1], 0x45
jne 0x51ae2f
cmp byte [eax + 2], 0x4c
jne 0x51ae2f
cmp byte [eax + 3], 0x46
je 0x51aecb
lea eax, [0x55f380]
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, [0x5834b9]
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, [0x54c120]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51aea2
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x564f60]
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 0x51af02
cmp dl, 2
jne 0x51b77e
movzx edx, byte [ecx + 5]
mov byte [eax + 1], dl
movzx edx, dl
cmp dl, 1
jne 0x51af25
lea edx, [0x5b833c]
mov dword [eax + 8], edx
lea edx, [0x6ddda0]
mov dword [eax + 0xc], edx
jmp 0x51af40
cmp dl, 2
jne 0x51b716
lea edx, [0x5b8368]
mov dword [eax + 8], edx
lea edx, [0x6ddda0]
mov dword [eax + 0xc], edx
movzx edx, byte [ecx + 6]
mov byte [eax + 2], dl
movzx edx, dl
cmp dl, 1
jne 0x51b6ae
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 0x51b14a
cmp cl, 2
je 0x51af99
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 0x51b245
lea edi, [esp + 0x2a8]
xor eax, eax
call fcn.00460ba0
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, [0x5b78fc]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x54a6a0]
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 0x51b122
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 0x51b0b4
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 0x51b245
mov dword [esp + 0xa8], eax
lea eax, [0x55f380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x16
lea ecx, [0x586ec4]
mov dword [eax + 8], ecx
lea ecx, [0x557360]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xa8]
movzx ecx, cl
lea edx, [0x678660]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x5b78e8]
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.00460ba3
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, [0x5b78fc]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x54a660]
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 0x51b686
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 0x51b618
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 0x51b587
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
test edx, edx
jl 0x51b4f6
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 0x51b31d
test ebx, ebx
jne 0x51b294
mov esi, dword [esp + 0x38]
jmp 0x51b3be
lea eax, [0x55f380]
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, [0x589897]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51b2f4
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
test ebx, ebx
jle 0x51b3ba
mov esi, dword [esp + 0x38]
cmp esi, ebx
jl 0x51b3be
lea eax, [0x55f380]
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, [0x58608f]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51b391
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, [0x5b78e8]
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 0x51b3dd
mov esi, 0x20
mov esi, 0x28
mov dword [esp + 0x28], esi
mov esi, 0x20
jmp 0x51b403
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x51b3f9
mov esi, 0x38
mov esi, 0x40
mov dword [esp + 0x28], esi
mov esi, 0x38
jmp 0x51b403
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 0x51b4a6
mov ebx, dword [esp + 0x68]
cmp ebx, esi
jge 0x51b4a6
lea eax, [0x55f380]
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, [0x58678b]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51b47d
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x64], ebp
lea eax, [0x559b20]
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 [0x6ddfe0]
test ebx, ebx
je 0x51b4ec
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 0x51b819
lea eax, [0x55f380]
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, [0x581408]
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, [0x550d00]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51b55e
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x55f380]
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, [0x5813fb]
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, [0x550d00]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51b5ef
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0xa8], eax
lea eax, [0x55f380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x16
lea ecx, [0x586ec4]
mov dword [eax + 8], ecx
lea ecx, [0x557360]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xa8]
movzx ecx, cl
lea edx, [0x678660]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x5b78e8]
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, [0x55f380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x13
lea ecx, [0x585a03]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx + 2]
lea edx, [0x557360]
mov dword [eax + 0x10], edx
lea edx, [0x678660]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x5b78e8]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
lea eax, [0x55f380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x19
lea ecx, [0x58826b]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx + 1]
lea edx, [0x557300]
mov dword [eax + 0x10], edx
lea edx, [0x678660]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x5b78e8]
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3c0], eax
add esp, 0x3ac
ret
lea eax, [0x55f380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x11
lea ecx, [0x584ac9]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x308]
movzx ecx, byte [ecx]
lea edx, [0x557240]
mov dword [eax + 0x10], edx
lea edx, [0x678660]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x3b8], 0
lea ecx, [0x5b78e8]
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 0x51be52
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 0x51b89b
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], edx
lea eax, [0x561f40]
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 0x51ba25
cmp cl, 2
jne 0x51bb58
lea edi, [esp + 0x1b8]
xor eax, eax
call fcn.00460ba2
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x5b78fc]
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, [0x54a720]
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 0x51bcbc
lea edi, [esp + 0x180]
xor eax, eax
call fcn.00460ba2
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.00461034
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x300]
jmp 0x51bb58
lea edi, [esp + 0xdc]
xor eax, eax
call fcn.00460ba8
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x5b78fc]
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, [0x54a6e0]
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 0x51be2a
lea edi, [esp + 0x1f0]
xor eax, eax
call fcn.00460ba2
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.00461034
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x300]
mov ecx, dword [edx + 0xc]
test ecx, ecx
jl 0x51bd87
mov ebx, dword [edx + 0x24]
test ebx, ebx
jl 0x51bce4
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 0x51bbaf
add esi, ebp
adc ebx, ecx
jmp 0x51bbb9
mov ebx, 0x7fffffff
mov esi, 0xffffffff
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], ebx
lea eax, [0x5608e0]
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 [0x6ddfe0]
test edx, edx
jne 0x51bbef
mov edx, dword [esp + 0x3b4]
jmp 0x51bbfd
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 [0x6ddfe0]
test ebx, ebx
jne 0x51bc3b
mov ebx, dword [esp + 0x300]
jmp 0x51bc4f
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, [0x5b77a8]
mov dword [ebx + 0x38], ebp
mov esi, dword [0x6ddfe0]
test esi, esi
je 0x51bc72
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 0x51d331
mov eax, dword [0x6ddfe0]
mov edi, dword [esi + 0x28]
test eax, eax
je 0x51b80d
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 0x51b80d
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, [0x55f380]
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, [0x58a64f]
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, [0x550ec0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51bd5e
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x55f380]
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, [0x5898b4]
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, [0x550ec0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51be01
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, [0x5b78e8]
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 0x51c259
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x51c248
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 0x51bed0
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], esi
movzx ecx, byte [eax]
cmp cl, 1
je 0x51bf92
cmp cl, 2
je 0x51beec
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x51c00f
lea edi, [esp + 0x268]
xor eax, eax
call fcn.00460ba0
mov ecx, dword [esp + 0x308]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
lea esi, [0x5b78fc]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x54a7a0]
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 0x51bf6a
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 0x51c00f
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.00460ba6
mov ecx, dword [esp + 0x308]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
lea esi, [0x5b78fc]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ebx, [0x54a760]
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 0x51c220
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 0x51c186
cmp ebx, 0xff00
jl 0x51c0e6
mov ecx, dword [esp + 0x38]
cmp ecx, 0xffff
jne 0x51c0df
cmp ebp, 0xff00
jge 0x51c268
mov dword [esp + 0x9c], ebp
lea eax, [0x55f380]
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, [0x58c4f5]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51c0b6
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov ebp, ecx
jmp 0x51c268
mov dword [esp + 0x98], ebx
lea eax, [0x55f380]
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, [0x58bc8e]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51c15d
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x2c], ecx
lea eax, [0x55f380]
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, [0x58b118]
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, [0x5574e0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51c1f7
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, [0x5b78e8]
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 0x51c268
mov edx, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], ebp
test ebx, ebx
jle 0x51c30d
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
cmp ecx, esi
jge 0x51c30d
lea eax, [0x55f380]
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, [0x5867a0]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51c2e4
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x44], ebx
lea eax, [0x55f500]
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 0x51c3c9
lea eax, [0x55f380]
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, [0x584ada]
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, [0x550c40]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51c3a0
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
mov dword [esp + 0x90], eax
lea ecx, [0x55f500]
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 [0x6ddfe0]
test ebx, ebx
je 0x51c41d
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, [0x550dc0]
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 0x51c46b
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 0x51cf18
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 0x51c501
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ecx
lea eax, [0x565960]
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 0x51c75f
cmp cl, 2
je 0x51c549
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x304]
jmp 0x51c956
lea edi, [esp + 0x228]
xor eax, eax
call fcn.00460ba0
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x5b78fc]
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, [0x54a7a0]
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 0x51cd32
mov ecx, dword [esp + 0x7c]
inc ecx
mov edx, dword [esp + 0x228]
mov ebx, dword [esp + 0x80]
cmp ebx, ecx
jb 0x51c5c6
mov eax, dword [esp + 0x304]
jmp 0x51c60b
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, [0x550dc0]
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.00460b9e
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 [0x6ddfe0]
test ecx, ecx
je 0x51c733
mov dword [esp + 0x310], edx
mov dword [esp + 0x98], ebx
lea eax, [0x569880]
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.0046100c
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x7c]
mov ebp, edx
mov edx, dword [esp + 0x2fc]
jmp 0x51c956
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.00460ba6
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
lea ebp, [0x5b78fc]
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, [0x54a760]
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 0x51cef0
mov ecx, dword [esp + 0x7c]
inc ecx
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x80]
cmp ebx, ecx
jb 0x51c7dc
mov eax, dword [esp + 0x304]
jmp 0x51c821
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, [0x550dc0]
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.00460b9e
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 [0x6ddfe0]
test ecx, ecx
je 0x51c92f
mov dword [esp + 0x310], edx
mov dword [esp + 0x94], ebx
lea eax, [0x569880]
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.0046100c
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 0x51ce4d
mov edi, dword [edx + 0x44]
test edi, edi
jl 0x51cdaa
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 0x51c9bf
add ebx, ecx
adc edi, esi
jmp 0x51c9c9
mov edi, 0x7fffffff
mov ebx, 0xffffffff
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], edi
lea eax, [0x5608e0]
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 [0x6ddfe0]
test edx, edx
jne 0x51c9ff
mov edx, dword [esp + 0x3b4]
jmp 0x51ca0d
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 [0x6ddfe0]
test ebx, ebx
jne 0x51ca4b
mov ebx, dword [esp + 0x2fc]
jmp 0x51ca5f
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 0x51caa8
lea ebp, [0x5b77a8]
mov dword [ebx + 0x48], ebp
mov esi, dword [0x6ddfe0]
test esi, esi
je 0x51ca8d
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 0x51cc83
mov ebp, dword [esp + 0x308]
movzx esi, byte [ebp]
xchg esi, eax
cmp al, 1
xchg esi, eax
je 0x51cba2
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x51cc83
lea edi, [esp + 0xc4]
xor eax, eax
call fcn.00460baa
mov ecx, dword [ebx + 0x50]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
lea ebp, [0x5b78fc]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
lea ecx, [0x54a4e0]
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 0x51cd5a
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, [0x54a4e0]
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 0x51cc83
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, [0x5b78fc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
lea eax, [0x54a4a0]
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 0x51cd82
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, [0x54a4a0]
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 0x51cd03
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x55f500]
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 [0x6ddfe0]
test eax, eax
je 0x51cce0
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 [0x6ddfe0]
test esi, esi
je 0x51c44b
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 0x51c44b
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, [0x55f380]
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, [0x5860a3]
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, [0x550d00]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51ce24
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, [0x5b78e8]
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3c0], edx
add esp, 0x3ac
ret
lea eax, [0x55f380]
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, [0x586eda]
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, [0x550d00]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51cec7
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, [0x5b78e8]
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 0x51d0ba
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x51d096
cmp ebp, ecx
jae 0x51d32a
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + ebp*4]
cmp dword [ecx + 8], 3
je 0x51d005
mov dword [esp + 0x2f4], ecx
lea eax, [0x55f380]
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, [0x58c768]
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, [0x5574e0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51cfdc
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, [0x5b78e8]
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 0x51d06e
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 0x51d10c
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 0x51d229
mov eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
jbe 0x51d321
mov ecx, dword [ecx + edx*4]
test ecx, ecx
jl 0x51d135
cmp esi, ecx
jg 0x51d14d
xor ecx, ecx
xor ecx, ecx
mov byte [esp + 0x26], cl
xor ecx, ecx
mov dword [esp + 0x2e8], ecx
xor ecx, ecx
jmp 0x51d1e4
mov dword [esp + 0xa8], ecx
jmp 0x51d259
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 0x51d1e4
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 [0x6ddfe0]
test ecx, ecx
je 0x51d20f
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 0x51d0de
jmp 0x51d26e
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 0x51d1d1
movzx ebx, byte [edi + ecx]
test bl, bl
jne 0x51d254
jmp 0x51d159
lea eax, [0x55f380]
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, [0x586ef0]
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, [0x550dc0]
mov edx, dword [esp + 0x314]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
je 0x51d2f8
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, [0x5b78e8]
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