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

Disassembly:
mov ecx, dword [0x62bbe4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x45d001
sub esp, 0x88
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x84], ecx
lea edx, [0x4f8380]
mov dword [esp], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 4], ebx
lea ebp, [esp + 0x80]
mov dword [esp + 8], ebp
call sym.runtime.mapaccess2
movzx eax, byte [esp + 0x10]
test al, al
jne 0x45cab4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x84], ecx
lea edx, [0x4f8380]
mov dword [esp], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
lea ebx, [esp + 0x80]
mov dword [esp + 8], ebx
call sym.runtime.mapassign
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
cmp eax, ecx
je 0x45caa5
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
movzx ebp, byte [eax + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp al, dl
xchg ebp, eax
jne 0x45ca96
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], dl
mov dword [esp], ecx
call sym.runtime.rtype.string
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x90]
mov dword [esp], edx
call sym.runtime.rtype.string
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x45ca87
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ca87
mov eax, dword [esp + 0x8c]
movzx ecx, byte [eax + 0xc]
test cl, 1
jne 0x45c57f
xor ecx, ecx
jmp 0x45c5de
movzx ecx, byte [eax + 0xf]
and ecx, 0x1f
cmp cl, 0x14
ja 0x45c5b3
cmp cl, 0x12
ja 0x45c5a4
cmp cl, 0x11
jne 0x45c59a
lea ecx, [eax + 0x2c]
jmp 0x45c5de
cmp cl, 0x12
jne 0x45c5db
lea ecx, [eax + 0x28]
jmp 0x45c5de
cmp cl, 0x13
jne 0x45c5ae
lea ecx, [eax + 0x24]
jmp 0x45c5de
lea ecx, [eax + 0x30]
jmp 0x45c5de
cmp cl, 0x16
ja 0x45c5c7
cmp cl, 0x15
jne 0x45c5c2
lea ecx, [eax + 0x38]
jmp 0x45c5de
lea ecx, [eax + 0x24]
jmp 0x45c5de
cmp cl, 0x17
jne 0x45c5d1
lea ecx, [eax + 0x24]
jmp 0x45c5de
cmp cl, 0x19
jne 0x45c5db
lea ecx, [eax + 0x30]
jmp 0x45c5de
lea ecx, [eax + 0x20]
mov edx, dword [esp + 0x90]
movzx ebx, byte [edx + 0xc]
test bl, 1
jne 0x45c5f2
xor ebx, ebx
jmp 0x45c651
movzx ebx, byte [edx + 0xf]
and ebx, 0x1f
cmp bl, 0x14
ja 0x45c626
cmp bl, 0x12
ja 0x45c617
cmp bl, 0x11
jne 0x45c60d
lea ebx, [edx + 0x2c]
jmp 0x45c651
cmp bl, 0x12
jne 0x45c64e
lea ebx, [edx + 0x28]
jmp 0x45c651
cmp bl, 0x13
jne 0x45c621
lea ebx, [edx + 0x24]
jmp 0x45c651
lea ebx, [edx + 0x30]
jmp 0x45c651
cmp bl, 0x16
ja 0x45c63a
cmp bl, 0x15
jne 0x45c635
lea ebx, [edx + 0x38]
jmp 0x45c651
lea ebx, [edx + 0x24]
jmp 0x45c651
cmp bl, 0x17
jne 0x45c644
lea ebx, [edx + 0x24]
jmp 0x45c651
cmp bl, 0x19
jne 0x45c64e
lea ebx, [edx + 0x30]
jmp 0x45c651
lea ebx, [edx + 0x20]
test ecx, ecx
jne 0x45c661
test ebx, ebx
je 0x45c700
test ecx, ecx
je 0x45c665
test ebx, ebx
jne 0x45c674
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov dword [esp + 0x50], ebx
mov ecx, dword [ecx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.resolveNameOff
mov eax, dword [esp + 8]
mov dword [esp], eax
call sym.internal_abi.Name.Name
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx]
mov edx, dword [esp + 4]
mov dword [esp + 0x60], edx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.runtime.resolveNameOff
mov eax, dword [esp + 8]
mov dword [esp], eax
call sym.internal_abi.Name.Name
mov eax, dword [esp + 0x20]
cmp dword [esp + 8], eax
jne 0x45ca78
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ca78
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
movzx ecx, byte [esp + 0x16]
test cl, cl
je 0x45cac3
cmp cl, 0x10
jbe 0x45ca69
cmp cl, 0x15
ja 0x45c94e
cmp cl, 0x12
jbe 0x45c8b5
cmp cl, 0x13
jne 0x45c7b5
movzx ecx, word [eax + 0x22]
cmp word [edx + 0x22], cx
jne 0x45c7a6
movzx ecx, word [eax + 0x20]
movzx ebx, word [edx + 0x20]
cmp bx, cx
jne 0x45c7a6
movzx ebp, byte [eax + 0xc]
xchg ebp, eax
test al, 1
xchg ebp, eax
je 0x45c75a
mov ebp, 0x34
jmp 0x45c75f
mov ebp, 0x24
test cx, cx
jne 0x45c76a
xor ecx, ecx
xor ebp, ebp
jmp 0x45c76f
movzx ecx, cx
add ebp, eax
movzx esi, byte [edx + 0xc]
xchg esi, eax
test al, 1
xchg esi, eax
je 0x45c781
mov esi, 0x34
jmp 0x45c786
mov esi, 0x24
test bx, bx
jne 0x45c78f
xor ebx, ebx
jmp 0x45c793
nop
lea ebx, [esi + edx]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
xor esi, esi
jmp 0x45cebb
mov byte [esp + 0x98], 0
add esp, 0x88
ret
cmp cl, 0x14
jne 0x45c84d
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x7c], ebx
mov dword [esp], edx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x45c83e
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45c83e
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0x90]
cmp dword [edx + 0x28], ecx
jne 0x45c82f
mov dword [esp + 0x3c], ecx
xor ebx, ebx
jmp 0x45cce6
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov ecx, dword [eax + 0x20]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
jne 0x45c877
xor eax, eax
jmp 0x45c8a7
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x98], al
add esp, 0x88
ret
cmp cl, 0x11
je 0x45c8ff
cmp cl, 0x12
jne 0x45cac3
mov ecx, dword [eax + 0x24]
cmp dword [edx + 0x24], ecx
je 0x45c8cf
xor eax, eax
jmp 0x45c8f1
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x98], al
add esp, 0x88
ret
mov ecx, dword [eax + 0x20]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
je 0x45c93e
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0x90]
cmp dword [ecx + 0x28], eax
sete al
jmp 0x45c940
xor eax, eax
mov byte [esp + 0x98], al
add esp, 0x88
ret
cmp cl, 0x17
ja 0x45c9b8
cmp cl, 0x16
jne 0x45c988
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x98], al
add esp, 0x88
ret
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x98], al
add esp, 0x88
ret
cmp cl, 0x18
je 0x45ca5a
cmp cl, 0x19
jne 0x45ca55
mov ecx, dword [edx + 0x28]
cmp dword [eax + 0x28], ecx
jne 0x45ca46
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x7c], ebx
mov dword [esp], edx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x45ca37
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ca37
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x3c], ecx
xor edx, edx
jmp 0x45cb28
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
cmp cl, 0x1a
jne 0x45cac3
mov byte [esp + 0x98], 1
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
call sym.runtime.printlock
lea eax, [0x51c741]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call sym.runtime.printstring
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
mov dword [esp + 4], 0
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea eax, [0x51c21c]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call sym.runtime.throw
mov ebx, dword [esp + 0x24]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
jge 0x45ccbe
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x78], ecx
mov ebx, dword [esp + 0x90]
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x74], ebp
lea esi, [edx + edx*2]
mov dword [esp + 0x38], esi
mov edi, dword [ecx + esi*4]
mov dword [esp], edi
call sym.internal_abi.Name.Name
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ebx, dword [edx + ecx*4]
mov ebp, dword [esp + 4]
mov dword [esp + 0x7c], ebp
mov dword [esp], ebx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 0x34]
cmp dword [esp + 8], eax
jne 0x45ccaf
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ccaf
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + eax*4 + 4]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
je 0x45cca0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call sym.internal_abi.Name.Tag
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ebx, dword [edx + ecx*4]
mov ebp, dword [esp + 4]
mov dword [esp + 0x7c], ebp
mov dword [esp], ebx
call sym.internal_abi.Name.Tag
mov eax, dword [esp + 0x34]
cmp dword [esp + 8], eax
jne 0x45cc91
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45cc91
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + eax*4 + 8]
mov ebx, dword [esp + 0x74]
lea ebp, [ebx + eax*4 + 8]
cmp dword [ebp], edx
jne 0x45cc82
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebx + eax*4]
movzx ecx, byte [ecx]
movzx eax, byte [eax]
test cl, 8
setne cl
test al, 8
setne al
cmp al, cl
je 0x45cb16
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
mov ebp, dword [esp + 0x28]
lea ebx, [ebp + 1]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x90]
cmp ebx, ecx
jge 0x45ce8b
mov dword [esp + 0x28], ebx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x70], ecx
lea ebp, [ecx + ebx*8]
mov dword [esp + 0x58], ebp
mov esi, dword [edx + 0x24]
mov dword [esp + 0x6c], esi
lea edi, [esi + ebx*8]
mov dword [esp + 0x54], edi
lea edx, [ecx + ebx*8]
mov edx, dword [edx]
mov dword [esp], ebp
mov dword [esp + 4], edx
call sym.runtime.resolveNameOff
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x6c]
lea ebx, [edx + ecx*8]
mov ebx, dword [ebx]
mov ebp, dword [esp + 0x54]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call sym.runtime.resolveNameOff
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x68]
mov dword [esp], edx
call sym.internal_abi.Name.Name
mov eax, dword [esp + 0x38]
cmp dword [esp + 8], eax
jne 0x45ce7c
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ce7c
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call sym.runtime.pkgPath
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x68]
mov dword [esp], edx
call sym.runtime.pkgPath
mov eax, dword [esp + 0x38]
cmp dword [esp + 8], eax
jne 0x45ce6d
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x45ce6d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x70]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x58]
mov dword [esp], edx
mov dword [esp + 4], ecx
call sym.runtime.resolveTypeOff
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x6c]
lea edx, [edx + ecx*8 + 4]
mov edx, dword [edx]
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], edx
call sym.runtime.resolveTypeOff
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
jne 0x45cccd
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
mov edi, dword [esp + 0x30]
lea esi, [edi + 1]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
cmp esi, ecx
jge 0x45cef9
mov dword [esp + 0x30], esi
mov eax, dword [ebp + esi*4]
mov ecx, dword [ebx + esi*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
jne 0x45ce9a
mov byte [esp + 0x98], 0
add esp, 0x88
ret
movzx ecx, word [eax + 0x22]
and ecx, 0x7fff
nop
test cx, cx
jne 0x45cf0f
xor ebp, ebp
xor eax, eax
jmp 0x45cf44
movzx ebx, byte [eax + 0xc]
test bl, 1
je 0x45cf1f
mov ebx, 0x34
jmp 0x45cf24
mov ebx, 0x24
movzx ebp, word [eax + 0x20]
movzx esi, bp
mov edi, esi
shl esi, 2
add ecx, ebp
movzx ecx, cx
sub ecx, edi
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and esi, ecx
add eax, ebx
add eax, esi
movzx ecx, word [edx + 0x22]
and ecx, 0x7fff
nop
test cx, cx
jne 0x45cf58
xor ecx, ecx
jmp 0x45cf92
movzx ebx, byte [edx + 0xc]
test bl, 1
je 0x45cf68
mov ebx, 0x34
jmp 0x45cf6d
mov ebx, 0x24
movzx esi, word [edx + 0x20]
movzx edi, si
mov dword [esp + 0x3c], edi
shl edi, 2
add ecx, esi
movzx ecx, cx
mov esi, dword [esp + 0x3c]
sub ecx, esi
neg ecx
sar ecx, 0x1f
and edi, ecx
lea ecx, [ebx + edx]
add ecx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
xor edx, edx
jmp 0x45cfb5
mov ebx, dword [esp + 0x2c]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
cmp edx, ebp
jge 0x45cff2
mov dword [esp + 0x2c], edx
mov ebx, dword [eax + edx*4]
mov ebp, dword [ecx + edx*4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], ebx
call sym.runtime.typesEqual
movzx eax, byte [esp + 0xc]
test al, al
jne 0x45cfa2
mov byte [esp + 0x98], 0
add esp, 0x88
ret
mov byte [esp + 0x98], 1
add esp, 0x88
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime.typesEqual